├── .circleci └── config.yml ├── .ghci ├── .github └── workflows │ ├── docs-ci-cd.yml │ ├── ghc-head.yml │ └── hlint.yml ├── .gitignore ├── .gitmodules ├── .hlint.yaml ├── CHANGES.md ├── LICENSE ├── LICENSE_Z3 ├── Makefile ├── README.md ├── Setup.hs ├── Syntax.md ├── TODO.EASY.md ├── TODO.md ├── benchmark-timings ├── CHANGELOG.md ├── app │ └── Main.hs └── benchmark-timings.cabal ├── benchmarks └── icfp15 │ └── README.md ├── cabal.project ├── cleanup ├── docs ├── blog │ ├── 2013-01-01-refinement-types-101.lhs │ ├── 2013-01-27-refinements101-reax.lhs │ ├── 2013-01-31-safely-catching-a-list-by-its-tail.lhs │ ├── 2013-02-16-kmeans-clustering-I.lhs │ ├── 2013-02-17-kmeans-clustering-II.lhs │ ├── 2013-03-04-bounding-vectors.lhs │ ├── 2013-03-26-talking-about-sets.lhs │ ├── 2013-05-16-unique-zippers.lhs │ ├── 2013-05-24-unique-zipper.lhs │ ├── 2013-06-03-abstracting-over-refinements.lhs │ ├── 2013-07-29-putting-things-in-order.lhs │ ├── 2013-11-23-telling_lies.lhs │ ├── 2013-12-01-getting-to-the-bottom.lhs │ ├── 2013-12-02-getting-to-the-bottom.lhs │ ├── 2013-12-09-checking-termination.lhs │ ├── 2013-12-14-gcd.lhs │ ├── 2013-12-22-measuring-the-size-of-structures.lhs │ ├── 2013-12-24-lexicographic-termination.lhs │ ├── 2013-12-29-decreasing-expressions.lhs │ ├── 2014-02-11-the-advantage-of-measures.lhs │ ├── 2014-02-16-text-read.lhs │ ├── 2014-02-23-text-write.lhs │ ├── 2014-03-01-text-bug.lhs │ ├── 2014-05-28-pointers-gone-wild.lhs │ ├── 2014-08-15-a-finer-filter.lhs │ ├── 2015-01-30-okasakis-lazy-queue.lhs │ ├── 2015-06-13-bounded-refinement-types.lhs │ ├── 2016-09-01-normal-forms.lhs │ ├── 2016-09-18-refinement-reflection.lhs │ ├── 2016-10-06-structural-induction.lhs │ ├── 2016-12-25-isomorphisms.lhs │ ├── 2017-01-06-reductions.lhs │ ├── 2017-03-20-arithmetic-overflows.lhs │ ├── 2017-12-15-splitting-and-splicing-intervals-I.lhs │ ├── 2017-12-24-splitting-and-splicing-intervals-II.lhs │ ├── 2018-02-23-measures-and-case-splitting.lhs │ ├── 2018-05-17-hillel-verifier-rodeo-I-leftpad.lhs │ ├── 2020-04-12-polymorphic-perplexion.lhs │ ├── 2020-08-20-lh-as-a-ghc-plugin.lhs │ └── todo │ │ ├── Iso.lhs │ │ ├── LambdaEval.hs │ │ ├── Termination.hs │ │ ├── TextBug.lhs │ │ ├── TextInternal.lhs │ │ ├── TextRead.lhs │ │ ├── TextWrite.lhs │ │ ├── basic_termination.lhs │ │ ├── binary-search-trees.lhs │ │ ├── encoding-induction.lhs │ │ ├── index-dependent-maps.hs │ │ ├── index-dependent-maps.lhs │ │ ├── kmeans-full.lhs │ │ ├── lets-talk-about-sets.lhs.markdown │ │ ├── red-black-intro.lhs │ │ ├── red-black-order.lhs │ │ ├── telling-lies-old.lhs │ │ ├── termination.lhs │ │ ├── text-layout.png │ │ ├── text-lifecycle.png │ │ └── verifying-efficient-sorting-algorithms.lhs ├── language │ ├── Makefile │ ├── commands.sty │ ├── haskellListings.tex │ ├── language.tex │ ├── liquidHaskell.sty │ ├── main.pdf │ ├── main.tex │ └── typeInference.tex ├── mkDocs │ ├── README.md │ ├── docs │ │ ├── blogposts │ │ │ ├── .pages │ │ │ ├── 2013-01-01-refinement-types-101.lhs.md │ │ │ ├── 2013-01-27-refinements101-reax.lhs.md │ │ │ ├── 2013-01-28-bounding-vectors.lhs.md │ │ │ ├── 2013-01-31-safely-catching-a-list-by-its-tail.lhs.md │ │ │ ├── 2013-02-16-kmeans-clustering-I.lhs.md │ │ │ ├── 2013-02-17-kmeans-clustering-II.lhs.md │ │ │ ├── 2013-03-04-bounding-vectors.lhs.md │ │ │ ├── 2013-03-26-talking-about-sets.lhs.md │ │ │ ├── 2013-05-24-unique-zipper.lhs.md │ │ │ ├── 2013-06-03-abstracting-over-refinements.lhs.md │ │ │ ├── 2013-07-29-putting-things-in-order.lhs.md │ │ │ ├── 2013-10-10-csv-tables.lhs.md │ │ │ ├── 2013-11-23-telling_lies.lhs.md │ │ │ ├── 2013-12-02-getting-to-the-bottom.lhs.md │ │ │ ├── 2013-12-09-checking-termination.lhs.md │ │ │ ├── 2013-12-14-gcd.lhs.md │ │ │ ├── 2014-02-11-the-advantage-of-measures.lhs.md │ │ │ ├── 2014-05-28-pointers-gone-wild.lhs.md │ │ │ ├── 2014-08-15-a-finer-filter.lhs.md │ │ │ ├── 2015-01-30-okasakis-lazy-queue.lhs.md │ │ │ ├── 2016-09-01-normal-forms.lhs.md │ │ │ ├── 2016-09-18-refinement-reflection.lhs.md │ │ │ ├── 2016-10-06-structural-induction.lhs.md │ │ │ ├── 2017-03-20-arithmetic-overflows.lhs.md │ │ │ ├── 2017-12-15-splitting-and-splicing-intervals-I.lhs.md │ │ │ ├── 2017-12-24-splitting-and-splicing-intervals-II.lhs.md │ │ │ ├── 2018-02-23-measures-and-case-splitting.lhs.md │ │ │ ├── 2018-05-17-hillel-verifier-rodeo-I-leftpad.lhs.md │ │ │ ├── 2019-10-20-why-types.lhs.md │ │ │ ├── 2020-04-12-polymorphic-perplexion.lhs.md │ │ │ ├── 2020-08-20-lh-as-a-ghc-plugin.lhs.md │ │ │ └── 2025-03-20-lh-release.md │ │ ├── index.md │ │ ├── install.md │ │ ├── options.md │ │ ├── papers.md │ │ ├── specifications.md │ │ ├── static │ │ │ ├── img │ │ │ │ ├── angles.jpg │ │ │ │ ├── ansel-adams-la-jolla.jpg │ │ │ │ ├── beach.jpg │ │ │ │ ├── dafny-leftpad-spec.png │ │ │ │ ├── emacs.png │ │ │ │ ├── escher-helix.jpg │ │ │ │ ├── falling.jpg │ │ │ │ ├── favicon.ico │ │ │ │ ├── garter-snake.jpg │ │ │ │ ├── geisel2.jpg │ │ │ │ ├── hillel-tweet-1.png │ │ │ │ ├── hillel-tweet-2.png │ │ │ │ ├── ico.png │ │ │ │ ├── la-jolla-shores-2.jpg │ │ │ │ ├── la-jolla-shores.jpg │ │ │ │ ├── leftpad-spec.png │ │ │ │ ├── lem_intersect.png │ │ │ │ ├── lem_sub.png │ │ │ │ ├── lem_union.png │ │ │ │ ├── logo-header.png │ │ │ │ ├── logo.png │ │ │ │ ├── odometer-rollover.jpg │ │ │ │ ├── out.gif │ │ │ │ ├── plugin-emacs.gif │ │ │ │ ├── plugin-ghcid.gif │ │ │ │ ├── plugin-vim.png │ │ │ │ ├── plugin-vscode.gif │ │ │ │ ├── preloader.gif │ │ │ │ ├── queue-lists.png │ │ │ │ ├── queue-rotate.png │ │ │ │ ├── queue.png │ │ │ │ ├── regehr-tweet-quantifiers.png │ │ │ │ ├── ribbon.png │ │ │ │ ├── sea.jpg │ │ │ │ ├── splash-append.png │ │ │ │ ├── splash-assocpf.gif │ │ │ │ ├── splash-assocpf.png │ │ │ │ ├── splash-assocthm.gif │ │ │ │ ├── splash-assocthm.png │ │ │ │ ├── splash-binarySearch-A.gif │ │ │ │ ├── splash-binarySearch-A.png │ │ │ │ ├── splash-binarySearch-B.gif │ │ │ │ ├── splash-binarySearch-B.png │ │ │ │ ├── splash-binarySearch-C.gif │ │ │ │ ├── splash-binarySearch-C.png │ │ │ │ ├── splash-binarySearch-D.gif │ │ │ │ ├── splash-binarySearch-D.png │ │ │ │ ├── splash-dotproduct.gif │ │ │ │ ├── splash-dotproduct.png │ │ │ │ ├── splash-fib.gif │ │ │ │ ├── splash-fib.png │ │ │ │ ├── splash-head.gif │ │ │ │ ├── splash-head.png │ │ │ │ ├── splash-insertsort.gif │ │ │ │ ├── splash-insertsort.png │ │ │ │ ├── splash-merge.gif │ │ │ │ ├── splash-merge.png │ │ │ │ ├── splash-unsafetake.gif │ │ │ │ ├── splash-unstutter.gif │ │ │ │ ├── splash-unstutter.png │ │ │ │ ├── splash-ups.gif │ │ │ │ ├── splash-ups.png │ │ │ │ ├── splash-vectorsum.gif │ │ │ │ ├── splash-vectorsum.png │ │ │ │ ├── text-layout.png │ │ │ │ ├── text-lifecycle.png │ │ │ │ ├── white.jpg │ │ │ │ ├── why_types_1_1.png │ │ │ │ ├── why_types_1_2.png │ │ │ │ ├── why_types_1_3.png │ │ │ │ ├── why_types_2.png │ │ │ │ ├── why_types_2_1.png │ │ │ │ ├── why_types_2_2.png │ │ │ │ ├── why_types_3_1.png │ │ │ │ ├── why_types_3_2.png │ │ │ │ ├── why_types_3_3.png │ │ │ │ └── why_types_3_4.png │ │ │ ├── liquid-dark.css │ │ │ ├── liquid-light.css │ │ │ └── misc.css │ │ └── tags.html │ ├── mkdocs.yml │ └── theme-overrides │ │ └── main.html └── slides │ ├── BOS14 │ ├── Makefile │ ├── README.md │ ├── _support │ │ ├── liquid.css │ │ ├── liquidhaskell.css │ │ ├── reveal.js │ │ │ ├── .travis.yml │ │ │ ├── Gruntfile.js │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── css │ │ │ │ ├── print │ │ │ │ │ ├── paper.css │ │ │ │ │ └── pdf.css │ │ │ │ ├── reveal.css │ │ │ │ ├── reveal.min.css │ │ │ │ └── theme │ │ │ │ │ ├── README.md │ │ │ │ │ ├── beige.css │ │ │ │ │ ├── blood.css │ │ │ │ │ ├── default.css │ │ │ │ │ ├── moon.css │ │ │ │ │ ├── night.css │ │ │ │ │ ├── seminar.css │ │ │ │ │ ├── seminar.orig.css │ │ │ │ │ ├── serif.css │ │ │ │ │ ├── simple.css │ │ │ │ │ ├── sky.css │ │ │ │ │ ├── solarized.css │ │ │ │ │ ├── source │ │ │ │ │ ├── beige.scss │ │ │ │ │ ├── blood.scss │ │ │ │ │ ├── default.scss │ │ │ │ │ ├── moon.scss │ │ │ │ │ ├── night.scss │ │ │ │ │ ├── serif.scss │ │ │ │ │ ├── simple.scss │ │ │ │ │ ├── sky.scss │ │ │ │ │ └── solarized.scss │ │ │ │ │ └── template │ │ │ │ │ ├── mixins.scss │ │ │ │ │ ├── settings.scss │ │ │ │ │ └── theme.scss │ │ │ ├── index.html │ │ │ ├── js │ │ │ │ ├── reveal.js │ │ │ │ └── reveal.min.js │ │ │ ├── lib │ │ │ │ ├── css │ │ │ │ │ └── zenburn.css │ │ │ │ ├── font │ │ │ │ │ ├── league_gothic-webfont.eot │ │ │ │ │ ├── league_gothic-webfont.svg │ │ │ │ │ ├── league_gothic-webfont.ttf │ │ │ │ │ ├── league_gothic-webfont.woff │ │ │ │ │ └── league_gothic_license │ │ │ │ └── js │ │ │ │ │ ├── classList.js │ │ │ │ │ ├── head.min.js │ │ │ │ │ └── html5shiv.js │ │ │ ├── package.json │ │ │ ├── plugin │ │ │ │ ├── highlight │ │ │ │ │ └── highlight.js │ │ │ │ ├── leap │ │ │ │ │ └── leap.js │ │ │ │ ├── markdown │ │ │ │ │ ├── example.html │ │ │ │ │ ├── example.md │ │ │ │ │ ├── markdown.js │ │ │ │ │ └── marked.js │ │ │ │ ├── math │ │ │ │ │ └── math.js │ │ │ │ ├── multiplex │ │ │ │ │ ├── client.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── master.js │ │ │ │ ├── notes-server │ │ │ │ │ ├── client.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── notes.html │ │ │ │ ├── notes │ │ │ │ │ ├── notes.html │ │ │ │ │ └── notes.js │ │ │ │ ├── postmessage │ │ │ │ │ ├── example.html │ │ │ │ │ └── postmessage.js │ │ │ │ ├── print-pdf │ │ │ │ │ └── print-pdf.js │ │ │ │ ├── remotes │ │ │ │ │ └── remotes.js │ │ │ │ ├── search │ │ │ │ │ └── search.js │ │ │ │ └── zoom-js │ │ │ │ │ └── zoom.js │ │ │ └── test │ │ │ │ ├── examples │ │ │ │ ├── assets │ │ │ │ │ ├── image1.png │ │ │ │ │ └── image2.png │ │ │ │ ├── barebones.html │ │ │ │ ├── embedded-media.html │ │ │ │ ├── math.html │ │ │ │ └── slide-backgrounds.html │ │ │ │ ├── qunit-1.12.0.css │ │ │ │ ├── qunit-1.12.0.js │ │ │ │ ├── test-markdown-element-attributes.html │ │ │ │ ├── test-markdown-element-attributes.js │ │ │ │ ├── test-markdown-slide-attributes.html │ │ │ │ ├── test-markdown-slide-attributes.js │ │ │ │ ├── test-markdown.html │ │ │ │ ├── test-markdown.js │ │ │ │ ├── test.html │ │ │ │ └── test.js │ │ └── template.reveal │ ├── hs │ │ ├── end │ │ │ ├── 000_Refinements.hs │ │ │ ├── 001_Refinements.hs │ │ │ ├── 01_Elements.hs │ │ │ ├── 02_AbstractRefinements.hs │ │ │ ├── 03_Termination.hs │ │ │ ├── 05_Memory.hs │ │ │ └── 06_Eval.hs │ │ ├── long │ │ │ ├── AlphaConvert.hs │ │ │ ├── GhcListSort.hs │ │ │ ├── KMP.hs │ │ │ ├── RBTree-ord.hs │ │ │ ├── RBTree.hs │ │ │ └── SoCalledHeartBleed.hs │ │ └── start │ │ │ ├── 000_Refinements.hs │ │ │ ├── 001_Refinements.hs │ │ │ ├── 01_Elements.hs │ │ │ ├── 02_AbstractRefinements.hs │ │ │ ├── 03_Termination.hs │ │ │ ├── 04_Streams.hs │ │ │ ├── 05_Memory.hs │ │ │ ├── 06_Eval-done.hs │ │ │ └── 06_Eval.hs │ ├── img │ │ ├── RedBlack.png │ │ ├── RobertMorris.png │ │ ├── bytestring.png │ │ ├── code-spec-indiv.png │ │ ├── code-spec-total.png │ │ ├── firstbug-crop.jpg │ │ ├── firstbug-crop2.jpg │ │ ├── firstbug.jpg │ │ ├── george-orwell.jpg │ │ ├── gotofail.png │ │ ├── heartbleed.png │ │ ├── minindex-classic.png │ │ ├── minindex-invariant.png │ │ ├── minindex-modern.png │ │ ├── minindex-reduce.png │ │ ├── overflow.png │ │ ├── rbtree-bad1.png │ │ ├── rbtree-bad2.png │ │ ├── rbtree-ok.png │ │ ├── tension0.png │ │ ├── tension1.png │ │ ├── tension2.png │ │ ├── tension3.png │ │ ├── termination-results.png │ │ ├── thoughtcrime.png │ │ └── ungood-small.jpg │ └── lhs │ │ ├── 00_Motivation.lhs │ │ ├── 00_Motivation_Long.lhs │ │ ├── 01_SimpleRefinements.lhs │ │ ├── 02_Measures.lhs │ │ ├── 03_HigherOrderFunctions.lhs │ │ ├── 04_AbstractRefinements.lhs │ │ ├── 05_Composition.lhs │ │ ├── 06_Inductive.lhs │ │ ├── 07_Array.lhs │ │ ├── 08_Recursive.lhs │ │ ├── 09_Laziness.lhs │ │ ├── 10_Termination.lhs │ │ ├── 11_Evaluation.lhs │ │ ├── 12_Conclusion.lhs │ │ ├── 13_RedBlack.lhs │ │ ├── 14_Memory.lhs │ │ ├── Index-Boston-Haskell.lhs │ │ ├── Index-Tufts.lhs │ │ └── Index.lhs │ ├── ETH14 │ ├── Makefile │ ├── MkCode.hs │ ├── _support │ │ ├── liquid.css │ │ ├── liquidhaskell.css │ │ ├── reveal.js │ │ │ ├── .travis.yml │ │ │ ├── Gruntfile.js │ │ │ ├── LICENSE │ │ │ ├── lib │ │ │ │ └── font │ │ │ │ │ ├── league_gothic-webfont.eot │ │ │ │ │ ├── league_gothic-webfont.svg │ │ │ │ │ ├── league_gothic-webfont.ttf │ │ │ │ │ ├── league_gothic-webfont.woff │ │ │ │ │ └── league_gothic_license │ │ │ ├── plugin │ │ │ │ ├── highlight │ │ │ │ │ └── highlight.js │ │ │ │ ├── leap │ │ │ │ │ └── leap.js │ │ │ │ ├── markdown │ │ │ │ │ ├── markdown.js │ │ │ │ │ └── marked.js │ │ │ │ ├── math │ │ │ │ │ └── math.js │ │ │ │ ├── multiplex │ │ │ │ │ ├── client.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── master.js │ │ │ │ ├── notes-server │ │ │ │ │ ├── client.js │ │ │ │ │ └── index.js │ │ │ │ ├── notes │ │ │ │ │ └── notes.js │ │ │ │ ├── postmessage │ │ │ │ │ └── postmessage.js │ │ │ │ ├── print-pdf │ │ │ │ │ └── print-pdf.js │ │ │ │ ├── remotes │ │ │ │ │ └── remotes.js │ │ │ │ ├── search │ │ │ │ │ └── search.js │ │ │ │ └── zoom-js │ │ │ │ │ └── zoom.js │ │ │ └── test │ │ │ │ ├── examples │ │ │ │ └── assets │ │ │ │ │ ├── image1.png │ │ │ │ │ └── image2.png │ │ │ │ ├── qunit-1.12.0.css │ │ │ │ ├── qunit-1.12.0.js │ │ │ │ ├── test-markdown-element-attributes.js │ │ │ │ ├── test-markdown-slide-attributes.js │ │ │ │ ├── test-markdown.js │ │ │ │ └── test.js │ │ └── template.reveal │ ├── cleanup │ ├── img │ │ ├── RedBlack.png │ │ ├── minindex-classic.png │ │ ├── minindex-invariant.png │ │ ├── minindex-modern.png │ │ ├── minindex-reduce.png │ │ ├── tension0.png │ │ ├── tension1.png │ │ ├── tension2.png │ │ └── tension3.png │ └── lhs │ │ ├── 00_Motivation.lhs │ │ ├── 01_SimpleRefinements.lhs │ │ ├── 02_Measures.lhs │ │ ├── 03_HigherOrderFunctions.lhs │ │ ├── 04_AbstractRefinements.lhs │ │ ├── 05_Composition.lhs │ │ ├── 06_Inductive.lhs │ │ ├── 07_Array.lhs │ │ ├── 08_Recursive.lhs │ │ ├── 09_Laziness.lhs │ │ ├── 10_Termination.lhs │ │ ├── 11_Evaluation.lhs │ │ ├── 12_Conclusion.lhs │ │ └── Index.lhs │ ├── Galois2014 │ ├── 000_Refinements.hs │ ├── 001_Refinements.hs │ ├── 01_Elements.hs │ └── 05_Memory.hs │ ├── HS2014 │ ├── Basics-blank.hs │ ├── Basics.lhs │ ├── ByteString-BAD-DIFFCHECK.hs │ ├── ByteString-blank.hs │ ├── ByteString.lhs │ ├── TODO.md │ ├── Totality-blank.hs │ └── Totality.lhs │ ├── IHP14 │ ├── Makefile │ ├── MkCode.hs │ ├── _support │ │ ├── .template2.reveal.swp │ │ ├── liquid.css │ │ ├── liquidhaskell.css │ │ ├── reveal.js │ │ │ ├── .travis.yml │ │ │ ├── Gruntfile.js │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── css │ │ │ │ ├── print │ │ │ │ │ ├── paper.css │ │ │ │ │ └── pdf.css │ │ │ │ ├── reveal.css │ │ │ │ ├── reveal.min.css │ │ │ │ └── theme │ │ │ │ │ ├── README.md │ │ │ │ │ ├── beige.css │ │ │ │ │ ├── blood.css │ │ │ │ │ ├── default.css │ │ │ │ │ ├── moon.css │ │ │ │ │ ├── night.css │ │ │ │ │ ├── seminar.css │ │ │ │ │ ├── seminar.orig.css │ │ │ │ │ ├── serif.css │ │ │ │ │ ├── simple.css │ │ │ │ │ ├── sky.css │ │ │ │ │ ├── solarized.css │ │ │ │ │ ├── source │ │ │ │ │ ├── beige.scss │ │ │ │ │ ├── blood.scss │ │ │ │ │ ├── default.scss │ │ │ │ │ ├── moon.scss │ │ │ │ │ ├── night.scss │ │ │ │ │ ├── serif.scss │ │ │ │ │ ├── simple.scss │ │ │ │ │ ├── sky.scss │ │ │ │ │ └── solarized.scss │ │ │ │ │ └── template │ │ │ │ │ ├── mixins.scss │ │ │ │ │ ├── settings.scss │ │ │ │ │ └── theme.scss │ │ │ ├── index.html │ │ │ ├── js │ │ │ │ ├── reveal.js │ │ │ │ └── reveal.min.js │ │ │ ├── lib │ │ │ │ ├── css │ │ │ │ │ └── zenburn.css │ │ │ │ ├── font │ │ │ │ │ ├── league_gothic-webfont.eot │ │ │ │ │ ├── league_gothic-webfont.svg │ │ │ │ │ ├── league_gothic-webfont.ttf │ │ │ │ │ ├── league_gothic-webfont.woff │ │ │ │ │ └── league_gothic_license │ │ │ │ └── js │ │ │ │ │ ├── classList.js │ │ │ │ │ ├── head.min.js │ │ │ │ │ └── html5shiv.js │ │ │ ├── package.json │ │ │ ├── plugin │ │ │ │ ├── highlight │ │ │ │ │ └── highlight.js │ │ │ │ ├── leap │ │ │ │ │ └── leap.js │ │ │ │ ├── markdown │ │ │ │ │ ├── example.html │ │ │ │ │ ├── example.md │ │ │ │ │ ├── markdown.js │ │ │ │ │ └── marked.js │ │ │ │ ├── math │ │ │ │ │ └── math.js │ │ │ │ ├── multiplex │ │ │ │ │ ├── client.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── master.js │ │ │ │ ├── notes-server │ │ │ │ │ ├── client.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── notes.html │ │ │ │ ├── notes │ │ │ │ │ ├── notes.html │ │ │ │ │ └── notes.js │ │ │ │ ├── postmessage │ │ │ │ │ ├── example.html │ │ │ │ │ └── postmessage.js │ │ │ │ ├── print-pdf │ │ │ │ │ └── print-pdf.js │ │ │ │ ├── remotes │ │ │ │ │ └── remotes.js │ │ │ │ ├── search │ │ │ │ │ └── search.js │ │ │ │ └── zoom-js │ │ │ │ │ └── zoom.js │ │ │ └── test │ │ │ │ ├── examples │ │ │ │ ├── assets │ │ │ │ │ ├── image1.png │ │ │ │ │ └── image2.png │ │ │ │ ├── barebones.html │ │ │ │ ├── embedded-media.html │ │ │ │ ├── math.html │ │ │ │ └── slide-backgrounds.html │ │ │ │ ├── qunit-1.12.0.css │ │ │ │ ├── qunit-1.12.0.js │ │ │ │ ├── test-markdown-element-attributes.html │ │ │ │ ├── test-markdown-element-attributes.js │ │ │ │ ├── test-markdown-slide-attributes.html │ │ │ │ ├── test-markdown-slide-attributes.js │ │ │ │ ├── test-markdown.html │ │ │ │ ├── test-markdown.js │ │ │ │ ├── test.html │ │ │ │ └── test.js │ │ └── template.reveal │ ├── cleanup │ ├── img │ │ ├── RedBlack.png │ │ ├── tension0.png │ │ ├── tension1.png │ │ ├── tension2.png │ │ └── tension3.png │ └── lhs │ │ ├── 00_Motivation_GoWrong.lhs │ │ ├── 00_Motivation_Logic.lhs │ │ ├── 01_SimpleRefinements.lhs │ │ ├── 02_Measures.lhs │ │ ├── 03_HigherOrderFunctions.lhs │ │ ├── 04_AbstractRefinements.lhs │ │ ├── 05_Composition.lhs │ │ ├── 06_Inductive.lhs │ │ ├── 07_Array.lhs │ │ ├── 08_Recursive.lhs │ │ ├── 09_Laziness.lhs │ │ ├── 10_Termination.lhs │ │ ├── 11_Evaluation.lhs │ │ ├── 12_Conclusion.lhs │ │ └── Index.lhs │ ├── LambdaConf15 │ └── lhs │ │ └── 01_SimpleRefinements.lhs │ ├── NEU14 │ ├── 00_Refinements-blank.hs │ ├── 00_Refinements.hs │ ├── 01_AbstractRefinements-blank.hs │ ├── 01_AbstractRefinements.hs │ ├── 02_Termination-blank.hs │ ├── 02_Termination.hs │ ├── AlphaConvert.hs │ ├── Eval.hs │ └── RBTree.hs │ ├── flops14 │ ├── Makefile │ ├── TODO.md │ ├── _support │ │ ├── liquid.css │ │ ├── reveal │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── css │ │ │ │ ├── liquidhaskell.css │ │ │ │ ├── main.css │ │ │ │ ├── print │ │ │ │ │ ├── paper.css │ │ │ │ │ └── pdf.css │ │ │ │ └── theme │ │ │ │ │ ├── beige.css │ │ │ │ │ ├── default.css │ │ │ │ │ ├── seminar.css │ │ │ │ │ ├── seminar.orig.css │ │ │ │ │ ├── serif.css │ │ │ │ │ ├── simple.css │ │ │ │ │ └── sky.css │ │ │ ├── js │ │ │ │ ├── .reveal.js.swo │ │ │ │ ├── .reveal.js.swp │ │ │ │ ├── .reveal.min.js.swo │ │ │ │ ├── .reveal.min.js.swp │ │ │ │ ├── reveal.js │ │ │ │ └── reveal.min.js │ │ │ ├── lib │ │ │ │ ├── css │ │ │ │ │ └── zenburn.css │ │ │ │ ├── font │ │ │ │ │ ├── OpenSans-Regular.ttf │ │ │ │ │ ├── PT_Sans-Narrow-Web-Regular.ttf │ │ │ │ │ └── league_gothic-webfont.ttf │ │ │ │ └── js │ │ │ │ │ ├── classList.js │ │ │ │ │ ├── data-markdown.js │ │ │ │ │ ├── head.min.js │ │ │ │ │ ├── highlight.js │ │ │ │ │ ├── html5shiv.js │ │ │ │ │ └── showdown.js │ │ │ ├── package.json │ │ │ └── plugin │ │ │ │ └── speakernotes │ │ │ │ ├── client.js │ │ │ │ ├── index.js │ │ │ │ └── notes.html │ │ └── template.reveal │ ├── cleanup │ ├── img │ │ └── RedBlack.png │ ├── lhs │ │ ├── 00_Index.lhs │ │ ├── 01_SimpleRefinements.lhs │ │ ├── 02_Measures.lhs │ │ ├── 03_HigherOrderFunctions.lhs │ │ ├── 04_AbstractRefinements.lhs │ │ ├── 05_Composition.lhs │ │ ├── 06_Inductive.lhs │ │ ├── 07_Array.lhs │ │ ├── 08_Recursive.lhs │ │ ├── 09_Laziness.lhs │ │ ├── 10_Termination.lhs │ │ └── 11_Evaluation.lhs │ └── reveal.js │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── Gruntfile.js │ │ ├── LICENSE │ │ ├── lib │ │ └── font │ │ │ ├── league_gothic-webfont.eot │ │ │ ├── league_gothic-webfont.svg │ │ │ ├── league_gothic-webfont.ttf │ │ │ ├── league_gothic-webfont.woff │ │ │ └── league_gothic_license │ │ ├── plugin │ │ ├── highlight │ │ │ └── highlight.js │ │ ├── leap │ │ │ └── leap.js │ │ ├── markdown │ │ │ ├── markdown.js │ │ │ └── marked.js │ │ ├── math │ │ │ └── math.js │ │ ├── multiplex │ │ │ ├── client.js │ │ │ ├── index.js │ │ │ └── master.js │ │ ├── notes-server │ │ │ ├── client.js │ │ │ └── index.js │ │ ├── notes │ │ │ └── notes.js │ │ ├── postmessage │ │ │ └── postmessage.js │ │ ├── print-pdf │ │ │ └── print-pdf.js │ │ ├── remotes │ │ │ └── remotes.js │ │ ├── search │ │ │ └── search.js │ │ └── zoom-js │ │ │ └── zoom.js │ │ └── test │ │ ├── examples │ │ └── assets │ │ │ ├── image1.png │ │ │ └── image2.png │ │ ├── qunit-1.12.0.css │ │ ├── qunit-1.12.0.js │ │ ├── test-markdown-element-attributes.js │ │ ├── test-markdown-slide-attributes.js │ │ ├── test-markdown.js │ │ └── test.js │ ├── niki │ ├── Makefile │ ├── fonts │ │ ├── OFT.txt │ │ ├── PT_Mono-Regular.ttf │ │ ├── PT_Sans-Narrow-Web-Bold.ttf │ │ ├── PT_Sans-Narrow-Web-Regular.ttf │ │ ├── PT_Sans-Web-Bold.ttf │ │ ├── PT_Sans-Web-BoldItalic.ttf │ │ ├── PT_Sans-Web-Italic.ttf │ │ └── PT_Sans-Web-Regular.ttf │ ├── html │ │ ├── benchmarks.png │ │ ├── fonts │ │ │ ├── OFT.txt │ │ │ ├── PT_Mono-Regular.ttf │ │ │ ├── PT_Sans-Narrow-Web-Bold.ttf │ │ │ ├── PT_Sans-Narrow-Web-Regular.ttf │ │ │ ├── PT_Sans-Web-Bold.ttf │ │ │ ├── PT_Sans-Web-BoldItalic.ttf │ │ │ ├── PT_Sans-Web-Italic.ttf │ │ │ └── PT_Sans-Web-Regular.ttf │ │ ├── liquid.css │ │ └── slides.css │ └── lhs │ │ ├── AbstractRefinements.lhs │ │ ├── Array.lhs │ │ ├── Composition.lhs │ │ ├── Inductive.lhs │ │ ├── Laziness.lhs │ │ ├── List.lhs │ │ ├── Loop.lhs │ │ ├── Measures.lhs │ │ ├── SimpleRefinements.lhs │ │ ├── liquid.css │ │ └── slides.css │ └── plpv14 │ ├── Makefile │ ├── _support │ ├── liquid.css │ ├── reveal │ │ ├── LICENSE │ │ ├── README.md │ │ ├── css │ │ │ ├── liquidhaskell.css │ │ │ ├── main.css │ │ │ ├── print │ │ │ │ ├── paper.css │ │ │ │ └── pdf.css │ │ │ └── theme │ │ │ │ ├── beige.css │ │ │ │ ├── default.css │ │ │ │ ├── seminar.css │ │ │ │ ├── seminar.orig.css │ │ │ │ ├── serif.css │ │ │ │ ├── simple.css │ │ │ │ └── sky.css │ │ ├── js │ │ │ ├── .reveal.js.swo │ │ │ ├── .reveal.js.swp │ │ │ ├── .reveal.min.js.swo │ │ │ ├── .reveal.min.js.swp │ │ │ ├── reveal.js │ │ │ └── reveal.min.js │ │ ├── lib │ │ │ ├── css │ │ │ │ └── zenburn.css │ │ │ ├── font │ │ │ │ ├── OpenSans-Regular.ttf │ │ │ │ ├── PT_Sans-Narrow-Web-Regular.ttf │ │ │ │ └── league_gothic-webfont.ttf │ │ │ └── js │ │ │ │ ├── classList.js │ │ │ │ ├── data-markdown.js │ │ │ │ ├── head.min.js │ │ │ │ ├── highlight.js │ │ │ │ ├── html5shiv.js │ │ │ │ └── showdown.js │ │ ├── package.json │ │ └── plugin │ │ │ └── speakernotes │ │ │ ├── client.js │ │ │ ├── index.js │ │ │ └── notes.html │ └── template.reveal │ ├── hopa │ └── AbstractRefinements.lhs │ ├── lhs │ ├── .01_SimpleRefinements.lhs.swn │ ├── 00_Index.lhs │ ├── 00_Index.lhs.markdown │ ├── 01_SimpleRefinements.lhs │ ├── 01_SimpleRefinements.lhs.markdown │ ├── 02_Measures.lhs │ ├── 02_Measures.lhs.markdown │ ├── 03_HigherOrderFunctions.lhs │ ├── 03_HigherOrderFunctions.lhs.markdown │ ├── 04_AbstractRefinements.lhs │ ├── 04_AbstractRefinements.lhs.markdown │ ├── 05_Composition.lhs │ ├── 05_Composition.lhs.markdown │ ├── 06_Inductive.lhs │ ├── 06_Inductive.lhs.markdown │ ├── 07_Array.lhs │ ├── 07_Array.lhs.markdown │ ├── 08_Recursive.lhs │ ├── 08_Recursive.lhs.markdown │ ├── 09_Laziness.lhs │ ├── 09_Laziness.lhs.markdown │ ├── 10_Termination.lhs │ ├── 10_Termination.lhs.markdown │ └── liquid.css │ ├── pdcreveal.tgz │ ├── reveal.js │ ├── .gitignore │ ├── .travis.yml │ ├── Gruntfile.js │ ├── LICENSE │ ├── lib │ │ └── font │ │ │ ├── league_gothic-webfont.eot │ │ │ ├── league_gothic-webfont.svg │ │ │ ├── league_gothic-webfont.ttf │ │ │ ├── league_gothic-webfont.woff │ │ │ └── league_gothic_license │ ├── plugin │ │ ├── highlight │ │ │ └── highlight.js │ │ ├── leap │ │ │ └── leap.js │ │ ├── markdown │ │ │ ├── markdown.js │ │ │ └── marked.js │ │ ├── math │ │ │ └── math.js │ │ ├── multiplex │ │ │ ├── client.js │ │ │ ├── index.js │ │ │ └── master.js │ │ ├── notes-server │ │ │ ├── client.js │ │ │ └── index.js │ │ ├── notes │ │ │ └── notes.js │ │ ├── postmessage │ │ │ └── postmessage.js │ │ ├── print-pdf │ │ │ └── print-pdf.js │ │ ├── remotes │ │ │ └── remotes.js │ │ ├── search │ │ │ └── search.js │ │ └── zoom-js │ │ │ └── zoom.js │ └── test │ │ ├── examples │ │ └── assets │ │ │ ├── image1.png │ │ │ └── image2.png │ │ ├── qunit-1.12.0.css │ │ ├── qunit-1.12.0.js │ │ ├── test-markdown-element-attributes.js │ │ ├── test-markdown-slide-attributes.js │ │ ├── test-markdown.js │ │ └── test.js │ └── tmp │ ├── Foo.hs │ └── liquid.css ├── external └── hsmisc │ ├── Graphs.hs │ └── Lhs2Hs.hs ├── files ├── README.md └── main.css ├── liquid-parallel ├── LICENSE ├── Setup.hs ├── liquid-parallel.cabal └── src │ └── Control │ └── Parallel │ └── Strategies_LHAssumptions.hs ├── liquid-prelude ├── LICENSE ├── Setup.hs ├── liquid-prelude.cabal └── src │ └── Language │ └── Haskell │ └── Liquid │ ├── Bag.hs │ ├── Equational.hs │ ├── Foreign.hs │ ├── List.hs │ ├── Prelude.hs │ ├── ProofCombinators.hs │ ├── RTick.hs │ ├── RTick │ └── Combinators.hs │ └── String.hs ├── liquid-vector ├── LICENSE ├── Setup.hs ├── liquid-vector.cabal └── src │ └── Data │ └── Vector_LHAssumptions.hs ├── liquidhaskell-boot ├── ghc-api-tests │ └── GhcApiTests.hs ├── liquidhaskell-boot.cabal ├── src-ghc-9.10 │ └── Liquid │ │ └── GHC │ │ └── API │ │ └── Compat.hs ├── src-ghc │ └── Liquid │ │ └── GHC │ │ ├── API.hs │ │ └── API │ │ ├── Extra.hs │ │ └── StableModule.hs ├── src │ ├── Language │ │ └── Haskell │ │ │ └── Liquid │ │ │ ├── Bare.hs │ │ │ ├── Bare │ │ │ ├── Axiom.hs │ │ │ ├── Check.hs │ │ │ ├── Class.hs │ │ │ ├── DataType.hs │ │ │ ├── Elaborate.hs │ │ │ ├── Expand.hs │ │ │ ├── Measure.hs │ │ │ ├── Misc.hs │ │ │ ├── Plugged.hs │ │ │ ├── Resolve.hs │ │ │ ├── ToBare.hs │ │ │ ├── Typeclass.hs │ │ │ └── Types.hs │ │ │ ├── CSS.hs │ │ │ ├── Cabal.hs │ │ │ ├── Constraint │ │ │ ├── Constraint.hs │ │ │ ├── Env.hs │ │ │ ├── Fresh.hs │ │ │ ├── Generate.hs │ │ │ ├── Init.hs │ │ │ ├── Monad.hs │ │ │ ├── Qualifier.hs │ │ │ ├── Relational.hs │ │ │ ├── RewriteCase.hs │ │ │ ├── Split.hs │ │ │ ├── Template.hs │ │ │ ├── Termination.hs │ │ │ ├── ToFixpoint.hs │ │ │ └── Types.hs │ │ │ ├── GHC │ │ │ ├── Interface.hs │ │ │ ├── Logging.hs │ │ │ ├── Misc.hs │ │ │ ├── Play.hs │ │ │ ├── Plugin.hs │ │ │ ├── Plugin │ │ │ │ ├── Serialisation.hs │ │ │ │ ├── SpecFinder.hs │ │ │ │ ├── Tutorial.hs │ │ │ │ └── Types.hs │ │ │ ├── Resugar.hs │ │ │ ├── SpanStack.hs │ │ │ ├── TypeRep.hs │ │ │ └── Types.hs │ │ │ ├── LHNameResolution.hs │ │ │ ├── Liquid.hs │ │ │ ├── Measure.hs │ │ │ ├── Misc.hs │ │ │ ├── Name │ │ │ └── LogicNameEnv.hs │ │ │ ├── Parse.hs │ │ │ ├── Termination │ │ │ └── Structural.hs │ │ │ ├── Transforms │ │ │ ├── ANF.hs │ │ │ ├── CoreToLogic.hs │ │ │ ├── InlineAux.hs │ │ │ ├── RefSplit.hs │ │ │ ├── Rewrite.hs │ │ │ └── Simplify.hs │ │ │ ├── Types │ │ │ ├── Annotations.hs │ │ │ ├── Bounds.hs │ │ │ ├── DataDecl.hs │ │ │ ├── Dictionaries.hs │ │ │ ├── Equality.hs │ │ │ ├── Errors.hs │ │ │ ├── Fresh.hs │ │ │ ├── Generics.hs │ │ │ ├── Literals.hs │ │ │ ├── Meet.hs │ │ │ ├── Names.hs │ │ │ ├── PredType.hs │ │ │ ├── PrettyPrint.hs │ │ │ ├── RType.hs │ │ │ ├── RTypeOp.hs │ │ │ ├── RefType.hs │ │ │ ├── Specs.hs │ │ │ ├── Types.hs │ │ │ ├── Variance.hs │ │ │ └── Visitors.hs │ │ │ ├── UX │ │ │ ├── ACSS.hs │ │ │ ├── Annotate.hs │ │ │ ├── CTags.hs │ │ │ ├── CmdLine.hs │ │ │ ├── Config.hs │ │ │ ├── DiffCheck.hs │ │ │ ├── Errors.hs │ │ │ ├── QuasiQuoter.hs │ │ │ ├── SimpleVersion.hs │ │ │ └── Tidy.hs │ │ │ └── WiredIn.hs │ └── LiquidHaskellBoot.hs └── tests │ ├── Parser.hs │ └── WiredInTests.hs ├── liquidhaskell.cabal ├── nixpkgs.nix ├── proposals ├── AssumeReflect.md ├── LocalRewrites.md └── OpaqueReflect.md ├── resources ├── icon.png ├── icon.svg ├── logo.png └── logo.svg ├── scripts ├── ghc.head │ ├── build.sh │ └── lh.build.sh ├── haskell_count ├── head.hackage.sh ├── metrics.py ├── performance │ ├── cleanup.bash │ ├── generate.bash │ └── initialize.bash ├── plot-performance │ ├── README.md │ ├── app │ │ ├── Benchmark.hs │ │ ├── Main.hs │ │ └── Plot.hs │ ├── chart_perf.sh │ ├── perf.gnuplot │ └── plot-performance.cabal ├── profiling-driver │ ├── ProfilingDriver.hs │ └── profiling-driver.cabal ├── test │ └── test_plugin.sh └── travis ├── src ├── Data │ ├── Bits_LHAssumptions.hs │ ├── ByteString │ │ ├── Char8_LHAssumptions.hs │ │ ├── Lazy │ │ │ └── Char8_LHAssumptions.hs │ │ ├── Lazy_LHAssumptions.hs │ │ ├── Short_LHAssumptions.hs │ │ └── Unsafe_LHAssumptions.hs │ ├── ByteString_LHAssumptions.hs │ ├── Either_LHAssumptions.hs │ ├── Foldable_LHAssumptions.hs │ ├── List_LHAssumptions.hs │ ├── Maybe_LHAssumptions.hs │ ├── Set_LHAssumptions.hs │ ├── String_LHAssumptions.hs │ ├── Tuple_LHAssumptions.hs │ └── Word_LHAssumptions.hs ├── Foreign │ ├── C │ │ ├── String_LHAssumptions.hs │ │ └── Types_LHAssumptions.hs │ ├── Concurrent_LHAssumptions.hs │ ├── ForeignPtr_LHAssumptions.hs │ ├── Marshal │ │ └── Alloc_LHAssumptions.hs │ ├── Ptr_LHAssumptions.hs │ └── Storable_LHAssumptions.hs ├── GHC │ ├── Base_LHAssumptions.hs │ ├── CString_LHAssumptions.hs │ ├── Classes_LHAssumptions.hs │ ├── Exts_LHAssumptions.hs │ ├── Float_LHAssumptions.hs │ ├── ForeignPtr_LHAssumptions.hs │ ├── IO │ │ └── Handle_LHAssumptions.hs │ ├── Int_LHAssumptions.hs │ ├── List_LHAssumptions.hs │ ├── Maybe_LHAssumptions.hs │ ├── Num │ │ └── Integer_LHAssumptions.hs │ ├── Num_LHAssumptions.hs │ ├── Ptr_LHAssumptions.hs │ ├── Real_LHAssumptions.hs │ ├── Types_LHAssumptions.hs │ └── Word_LHAssumptions.hs ├── Liquid │ └── Prelude │ │ ├── Real_LHAssumptions.hs │ │ └── Totality_LHAssumptions.hs ├── LiquidHaskell.hs └── Prelude_LHAssumptions.hs ├── stack.yaml ├── stack.yaml.lock ├── tests-by-syntax.md ├── tests ├── DependentHaskell │ └── todo │ │ ├── ClassKind.hs │ │ ├── LF326.hs │ │ └── TypeFamilies.hs ├── README.md ├── RankNTypes │ └── pos │ │ ├── Test0.hs │ │ ├── Test00.hs │ │ └── Test1.hs ├── TestCommits.hs ├── absref │ ├── neg │ │ ├── Deppair0.hs │ │ ├── Deptup0.hs │ │ ├── DeptupW.hs │ │ ├── FlipArgs.hs │ │ ├── ListISort.hs │ │ ├── ListISort_LType.hs │ │ └── ListQSort.hs │ └── pos │ │ ├── AbsRef00.hs │ │ ├── Deppair0.hs │ │ ├── Deppair2.hs │ │ ├── Deptup0.hs │ │ ├── DeptupW.hs │ │ ├── FlipArgs.hs │ │ ├── ListISort.hs │ │ ├── ListISort_LType.hs │ │ ├── ListQSort.hs │ │ ├── Papp00.hs │ │ ├── State00.hs │ │ └── VectorLoop.hs ├── app │ └── Main.hs ├── basic │ ├── neg │ │ ├── AssmRefl01.hs │ │ ├── AssmRefl02.hs │ │ ├── AssmRefl03.hs │ │ ├── AssmRefl04.hs │ │ ├── DuplicateSpecs.hs │ │ ├── Inc01.hs │ │ ├── Inc01q.hs │ │ ├── Inc02.hs │ │ ├── Inc03.hs │ │ ├── Inc04.hs │ │ ├── Inc04Lib.hs │ │ ├── List00.hs │ │ ├── Poly00.hs │ │ ├── ReflExt01A.hs │ │ ├── ReflExt01B.hs │ │ ├── ReflExt02A.hs │ │ ├── ReflExt02B.hs │ │ ├── ShadowLogicSymbols.hs │ │ ├── T1459.hs │ │ └── T2349.hs │ └── pos │ │ ├── Alias00.hs │ │ ├── Alias01.hs │ │ ├── Alias02.hs │ │ ├── Alias03.hs │ │ ├── Alias04.hs │ │ ├── Alias05.hs │ │ ├── AssmRefl01.hs │ │ ├── AssmRefl02A.hs │ │ ├── AssmRefl02B.hs │ │ ├── AssmRefl02C.hs │ │ ├── AssmRefl02D.hs │ │ ├── AssmRefl03.hs │ │ ├── AssmReflFilter.hs │ │ ├── Float.hs │ │ ├── Inc00.hs │ │ ├── Inc01.hs │ │ ├── Inc01q.hs │ │ ├── Inc02.hs │ │ ├── Inc03.hs │ │ ├── Inc03Lib.hs │ │ ├── Inc04.hs │ │ ├── Infer00.hs │ │ ├── List00.hs │ │ ├── MeasureOverlapA.hs │ │ ├── MeasureOverlapB.hs │ │ ├── MeasureOverlapC.hs │ │ ├── MeasureOverlapD.hs │ │ ├── MeasureOverlapE.hs │ │ ├── OpaqueRefl01.hs │ │ ├── OpaqueRefl02.hs │ │ ├── OpaqueRefl03A.hs │ │ ├── OpaqueRefl03B.hs │ │ ├── OpaqueRefl03C.hs │ │ ├── OpaqueRefl03D.hs │ │ ├── OpaqueRefl04.hs │ │ ├── OpaqueRefl05.hs │ │ ├── OpaqueRefl06.hs │ │ ├── Poly00.hs │ │ ├── ReflExt01.hs │ │ ├── ReflExt02A.hs │ │ ├── ReflExt02B.hs │ │ ├── ReflExt03A.hs │ │ ├── ReflExt03B.hs │ │ ├── ReflExt04A.hs │ │ ├── ReflExt04B.hs │ │ ├── ReflExt05A.hs │ │ ├── ReflExt05B.hs │ │ ├── ReflExt06A.hs │ │ ├── ReflExt06B.hs │ │ ├── ReflExt06C.hs │ │ ├── ReflExt06D.hs │ │ ├── ReflExt07A.hs │ │ ├── ReflExt07B.hs │ │ ├── ReflExt08A.hs │ │ ├── ReflExt08B.hs │ │ ├── ShadowLogicSymbols.hs │ │ ├── SkipDerived00.hs │ │ ├── T2349.hs │ │ ├── T2369.hs │ │ └── TestAdmit.hs ├── benchmarks │ ├── NOTES.txt │ ├── base-4.5.1.0 │ │ ├── Control │ │ │ ├── Applicative.hs │ │ │ ├── Arrow.hs │ │ │ ├── Category.hs │ │ │ ├── Concurrent.hs │ │ │ ├── Concurrent │ │ │ │ ├── Chan.hs │ │ │ │ ├── MVar.hs │ │ │ │ ├── QSem.hs │ │ │ │ ├── QSemN.hs │ │ │ │ └── SampleVar.hs │ │ │ ├── Exception.hs │ │ │ ├── Exception │ │ │ │ └── Base.hs │ │ │ ├── Monad.hs │ │ │ ├── Monad │ │ │ │ ├── Fix.hs │ │ │ │ ├── Instances.hs │ │ │ │ ├── ST.hs │ │ │ │ ├── ST │ │ │ │ │ ├── Imp.hs │ │ │ │ │ ├── Lazy.hs │ │ │ │ │ ├── Lazy │ │ │ │ │ │ ├── Imp.hs │ │ │ │ │ │ ├── Safe.hs │ │ │ │ │ │ └── Unsafe.hs │ │ │ │ │ ├── Safe.hs │ │ │ │ │ ├── Strict.hs │ │ │ │ │ └── Unsafe.hs │ │ │ │ └── Zip.hs │ │ │ └── OldException.hs │ │ ├── Data │ │ │ ├── Bits.hs │ │ │ ├── Bool.hs │ │ │ ├── Char.hs │ │ │ ├── Complex.hs │ │ │ ├── Data.hs │ │ │ ├── Dynamic.hs │ │ │ ├── Either.hs │ │ │ ├── Eq.hs │ │ │ ├── Fixed.hs │ │ │ ├── Foldable.hs │ │ │ ├── Function.hs │ │ │ ├── Functor.hs │ │ │ ├── HashTable.hs │ │ │ ├── IORef.hs │ │ │ ├── Int.hs │ │ │ ├── Ix.hs │ │ │ ├── List.hs │ │ │ ├── Maybe.hs │ │ │ ├── Monoid.hs │ │ │ ├── Ord.hs │ │ │ ├── Ratio.hs │ │ │ ├── STRef.hs │ │ │ ├── STRef │ │ │ │ ├── Lazy.hs │ │ │ │ └── Strict.hs │ │ │ ├── String.hs │ │ │ ├── Traversable.hs │ │ │ ├── Tuple.hs │ │ │ ├── Typeable.hs │ │ │ ├── Typeable.hs-boot │ │ │ ├── Typeable │ │ │ │ ├── Internal.hs │ │ │ │ └── Internal.hs-boot │ │ │ ├── Unique.hs │ │ │ ├── Version.hs │ │ │ └── Word.hs │ │ ├── Debug │ │ │ └── Trace.hs │ │ ├── Foreign.hs │ │ ├── Foreign │ │ │ ├── C.hs │ │ │ ├── C │ │ │ │ ├── Error.hs │ │ │ │ ├── String.hs │ │ │ │ └── Types.hs │ │ │ ├── Concurrent.hs │ │ │ ├── ForeignPtr.hs │ │ │ ├── ForeignPtr │ │ │ │ ├── Imp.hs │ │ │ │ ├── Safe.hs │ │ │ │ └── Unsafe.hs │ │ │ ├── Marshal.hs │ │ │ ├── Marshal │ │ │ │ ├── Alloc.hs │ │ │ │ ├── Array.hs │ │ │ │ ├── Error.hs │ │ │ │ ├── Pool.hs │ │ │ │ ├── Safe.hs │ │ │ │ ├── Unsafe.hs │ │ │ │ └── Utils.hs │ │ │ ├── Ptr.hs │ │ │ ├── Safe.hs │ │ │ ├── StablePtr.hs │ │ │ └── Storable.hs │ │ ├── GHC │ │ │ ├── Arr.lhs │ │ │ ├── Base.lhs │ │ │ ├── Conc.lhs │ │ │ ├── Conc │ │ │ │ ├── IO.hs │ │ │ │ ├── Signal.hs │ │ │ │ ├── Sync.lhs │ │ │ │ └── Windows.hs │ │ │ ├── ConsoleHandler.hs │ │ │ ├── Constants.hs │ │ │ ├── Desugar.hs │ │ │ ├── Enum.lhs │ │ │ ├── Environment.hs │ │ │ ├── Err.lhs │ │ │ ├── Err.lhs-boot │ │ │ ├── Event.hs │ │ │ ├── Event │ │ │ │ ├── Array.hs │ │ │ │ ├── Clock.hsc │ │ │ │ ├── Control.hs │ │ │ │ ├── EPoll.hsc │ │ │ │ ├── IntMap.hs │ │ │ │ ├── Internal.hs │ │ │ │ ├── KQueue.hsc │ │ │ │ ├── Manager.hs │ │ │ │ ├── PSQ.hs │ │ │ │ ├── Poll.hsc │ │ │ │ ├── Thread.hs │ │ │ │ └── Unique.hs │ │ │ ├── Exception.lhs │ │ │ ├── Exts.hs │ │ │ ├── Fingerprint.hs │ │ │ ├── Fingerprint.hs-boot │ │ │ ├── Fingerprint │ │ │ │ └── Type.hs │ │ │ ├── Float.lhs │ │ │ ├── Float │ │ │ │ ├── ConversionUtils.hs │ │ │ │ └── RealFracMethods.hs │ │ │ ├── Foreign.hs │ │ │ ├── ForeignPtr.hs │ │ │ ├── Handle.hs │ │ │ ├── IO.hs │ │ │ ├── IO.hs-boot │ │ │ ├── IO │ │ │ │ ├── Buffer.hs │ │ │ │ ├── BufferedIO.hs │ │ │ │ ├── Device.hs │ │ │ │ ├── Encoding.hs │ │ │ │ ├── Encoding.hs-boot │ │ │ │ ├── Encoding │ │ │ │ │ ├── CodePage.hs │ │ │ │ │ ├── CodePage │ │ │ │ │ │ └── Table.hs │ │ │ │ │ ├── Failure.hs │ │ │ │ │ ├── Iconv.hs │ │ │ │ │ ├── Latin1.hs │ │ │ │ │ ├── Types.hs │ │ │ │ │ ├── UTF16.hs │ │ │ │ │ ├── UTF32.hs │ │ │ │ │ └── UTF8.hs │ │ │ │ ├── Exception.hs │ │ │ │ ├── Exception.hs-boot │ │ │ │ ├── FD.hs │ │ │ │ ├── Handle.hs │ │ │ │ ├── Handle.hs-boot │ │ │ │ ├── Handle │ │ │ │ │ ├── FD.hs │ │ │ │ │ ├── FD.hs-boot │ │ │ │ │ ├── Internals.hs │ │ │ │ │ ├── Text.hs │ │ │ │ │ └── Types.hs │ │ │ │ └── IOMode.hs │ │ │ ├── IOArray.hs │ │ │ ├── IOBase.hs │ │ │ ├── IORef.hs │ │ │ ├── Int.hs │ │ │ ├── List.lhs │ │ │ ├── MVar.hs │ │ │ ├── Num.lhs │ │ │ ├── PArr.hs │ │ │ ├── Pack.lhs │ │ │ ├── Ptr.lhs │ │ │ ├── Read.lhs │ │ │ ├── Real.lhs │ │ │ ├── ST.lhs │ │ │ ├── STRef.lhs │ │ │ ├── Show.lhs │ │ │ ├── Show.lhs-boot │ │ │ ├── Stable.lhs │ │ │ ├── Stack.hsc │ │ │ ├── Stats.hsc │ │ │ ├── Storable.lhs │ │ │ ├── TopHandler.lhs │ │ │ ├── Unicode.hs │ │ │ ├── Unicode.hs-boot │ │ │ ├── Weak.lhs │ │ │ ├── Windows.hs │ │ │ └── Word.hs │ │ ├── LICENSE │ │ ├── Numeric.hs │ │ ├── Prelude.hs │ │ ├── Setup.hs │ │ ├── System │ │ │ ├── CPUTime.hsc │ │ │ ├── Console │ │ │ │ └── GetOpt.hs │ │ │ ├── Environment.hs │ │ │ ├── Exit.hs │ │ │ ├── IO.hs │ │ │ ├── IO │ │ │ │ ├── Error.hs │ │ │ │ └── Unsafe.hs │ │ │ ├── Info.hs │ │ │ ├── Mem.hs │ │ │ ├── Mem │ │ │ │ ├── StableName.hs │ │ │ │ └── Weak.hs │ │ │ ├── Posix │ │ │ │ ├── Internals.hs │ │ │ │ ├── Internals.hs-boot │ │ │ │ └── Types.hs │ │ │ └── Timeout.hs │ │ ├── Text │ │ │ ├── ParserCombinators │ │ │ │ ├── ReadP.hs │ │ │ │ └── ReadPrec.hs │ │ │ ├── Printf.hs │ │ │ ├── Read.hs │ │ │ ├── Read │ │ │ │ └── Lex.hs │ │ │ ├── Show.hs │ │ │ └── Show │ │ │ │ └── Functions.hs │ │ ├── Unsafe │ │ │ └── Coerce.hs │ │ ├── aclocal.m4 │ │ ├── base.cabal │ │ ├── cbits │ │ │ ├── PrelIOUtils.c │ │ │ ├── WCsubst.c │ │ │ ├── Win32Utils.c │ │ │ ├── consUtils.c │ │ │ ├── iconv.c │ │ │ ├── inputReady.c │ │ │ ├── md5.c │ │ │ ├── primFloat.c │ │ │ └── selectUtils.c │ │ ├── config.guess │ │ ├── config.sub │ │ ├── configure │ │ ├── configure.ac │ │ ├── ieee-flpt.h │ │ ├── include │ │ │ ├── CTypes.h │ │ │ ├── EventConfig.h │ │ │ ├── HsBase.h │ │ │ ├── HsBaseConfig.h │ │ │ ├── Typeable.h │ │ │ ├── WCsubst.h │ │ │ ├── consUtils.h │ │ │ ├── ieee-flpt.h │ │ │ └── md5.h │ │ └── install-sh │ ├── bytestring-0.9.2.1 │ │ ├── Data │ │ │ ├── ByteString.hs │ │ │ └── ByteString │ │ │ │ ├── Char8.hs │ │ │ │ ├── Fusion.hs │ │ │ │ ├── Fusion │ │ │ │ └── T.hs │ │ │ │ ├── Internal.hs │ │ │ │ ├── Lazy.hs │ │ │ │ ├── Lazy │ │ │ │ ├── Char8.hs │ │ │ │ └── Internal.hs │ │ │ │ ├── LazyZip.hs │ │ │ │ ├── T.hs │ │ │ │ └── Unsafe.hs │ │ ├── cbits │ │ │ └── fpstring.c │ │ ├── count.py │ │ ├── count.sh │ │ └── include │ │ │ └── fpstring.h │ ├── containers-0.5.0.0 │ │ ├── Data │ │ │ ├── Graph.hs │ │ │ ├── IntMap.hs │ │ │ ├── IntMap │ │ │ │ ├── Base.hs │ │ │ │ ├── Lazy.hs │ │ │ │ └── Strict.hs │ │ │ ├── IntSet.hs │ │ │ ├── IntSet │ │ │ │ └── Base.hs │ │ │ ├── Map.hs │ │ │ ├── Map │ │ │ │ ├── Base.hs │ │ │ │ ├── Base0.hs │ │ │ │ ├── Base00.hs │ │ │ │ ├── Base1.hs │ │ │ │ ├── Lazy.hs │ │ │ │ └── Strict.hs │ │ │ ├── Sequence.hs │ │ │ ├── Set.hs │ │ │ ├── Set │ │ │ │ └── Base.hs │ │ │ ├── StrictPair.hs │ │ │ └── Tree.hs │ │ ├── LICENSE │ │ ├── Setup.hs │ │ ├── benchmarks │ │ │ ├── IntMap.hs │ │ │ ├── IntSet.hs │ │ │ ├── LookupGE │ │ │ │ ├── IntMap.hs │ │ │ │ ├── LookupGE_IntMap.hs │ │ │ │ ├── LookupGE_Map.hs │ │ │ │ ├── Makefile │ │ │ │ └── Map.hs │ │ │ ├── Makefile │ │ │ ├── Map.hs │ │ │ ├── Sequence.hs │ │ │ ├── Set.hs │ │ │ ├── SetOperations │ │ │ │ ├── Makefile │ │ │ │ ├── SetOperations-IntMap.hs │ │ │ │ ├── SetOperations-IntSet.hs │ │ │ │ ├── SetOperations-Map.hs │ │ │ │ ├── SetOperations-Set.hs │ │ │ │ └── SetOperations.hs │ │ │ ├── bench-cmp.pl │ │ │ └── bench-cmp.sh │ │ ├── containers.cabal │ │ ├── include │ │ │ └── Typeable.h │ │ └── tests │ │ │ ├── Makefile │ │ │ ├── intmap-properties.hs │ │ │ ├── intset-properties.hs │ │ │ ├── map-properties.hs │ │ │ ├── seq-properties.hs │ │ │ └── set-properties.hs │ ├── cse230 │ │ ├── LICENSE │ │ ├── README.md │ │ └── src │ │ │ └── Week10 │ │ │ ├── Axiomatic.hs │ │ │ ├── BigStep.hs │ │ │ ├── Expressions.hs │ │ │ ├── Imp.hs │ │ │ ├── Lec_3_11.hs │ │ │ ├── Lec_3_15.hs │ │ │ ├── ProofCombinators.hs │ │ │ ├── STLC.lhs │ │ │ ├── State.hs │ │ │ └── Verifier.hs │ ├── esop2013-submission │ │ ├── Array.hs │ │ ├── Base.hquals │ │ ├── Base.hs │ │ ├── Fib.hs │ │ ├── GhcListSort.hs │ │ ├── ListSort.hs │ │ ├── Splay.hs │ │ ├── Toy.hs │ │ ├── count.py │ │ └── count.sh │ ├── haskell16 │ │ └── pos │ │ │ └── tmp │ │ │ └── MonoidPeano.hs │ ├── hmatrix-0.15.0.1 │ │ ├── Config.hs │ │ ├── LICENSE │ │ ├── Setup.lhs │ │ ├── examples │ │ │ ├── bool.hs │ │ │ ├── data.txt │ │ │ ├── deriv.hs │ │ │ ├── devel │ │ │ │ ├── ej1 │ │ │ │ │ ├── functions.c │ │ │ │ │ └── wrappers.hs │ │ │ │ └── ej2 │ │ │ │ │ ├── functions.c │ │ │ │ │ └── wrappers.hs │ │ │ ├── error.hs │ │ │ ├── fitting.hs │ │ │ ├── inplace.hs │ │ │ ├── integrate.hs │ │ │ ├── kalman.hs │ │ │ ├── lie.hs │ │ │ ├── minimize.hs │ │ │ ├── monadic.hs │ │ │ ├── multiply.hs │ │ │ ├── ode.hs │ │ │ ├── parallel.hs │ │ │ ├── pca1.hs │ │ │ ├── pca2.hs │ │ │ ├── pinv.hs │ │ │ ├── plot.hs │ │ │ ├── root.hs │ │ │ └── vector.hs │ │ ├── hmatrix.cabal │ │ └── lib │ │ │ ├── Data │ │ │ ├── Packed.hs │ │ │ └── Packed │ │ │ │ ├── Development.hs │ │ │ │ ├── Foreign.hs │ │ │ │ ├── Internal.hs │ │ │ │ ├── Internal │ │ │ │ ├── Common.hs │ │ │ │ ├── Matrix.hs │ │ │ │ ├── Signatures.hs │ │ │ │ └── Vector.hs │ │ │ │ ├── Matrix.hs │ │ │ │ ├── Random.hs │ │ │ │ ├── ST.hs │ │ │ │ └── Vector.hs │ │ │ ├── Graphics │ │ │ └── Plot.hs │ │ │ └── Numeric │ │ │ ├── Chain.hs │ │ │ ├── Container.hs │ │ │ ├── ContainerBoot.hs │ │ │ ├── Conversion.hs │ │ │ ├── GSL.hs │ │ │ ├── GSL │ │ │ ├── Differentiation.hs │ │ │ ├── Fitting.hs │ │ │ ├── Fourier.hs │ │ │ ├── Integration.hs │ │ │ ├── Internal.hs │ │ │ ├── Minimization.hs │ │ │ ├── ODE.hs │ │ │ ├── Polynomials.hs │ │ │ ├── Root.hs │ │ │ ├── Vector.hs │ │ │ ├── gsl-aux.c │ │ │ └── gsl-ode.c │ │ │ ├── IO.hs │ │ │ ├── LinearAlgebra.hs │ │ │ ├── LinearAlgebra │ │ │ ├── Algorithms.hs │ │ │ ├── LAPACK.hs │ │ │ ├── LAPACK │ │ │ │ ├── lapack-aux.c │ │ │ │ └── lapack-aux.h │ │ │ ├── Util.hs │ │ │ └── Util │ │ │ │ └── Convolution.hs │ │ │ ├── Matrix.hs │ │ │ └── Vector.hs │ ├── icfp15 │ │ ├── MiniPosix.hs │ │ ├── neg │ │ │ ├── Composition.hs │ │ │ ├── DBMovies.hs │ │ │ ├── DataBase.hs │ │ │ ├── IfM.hs │ │ │ ├── RIO.hs │ │ │ ├── Records.hs │ │ │ ├── TestM.hs │ │ │ ├── TwiceM.hs │ │ │ └── WhileM.hs │ │ ├── pos │ │ │ ├── Append.hs │ │ │ ├── CompareConstraints.hs │ │ │ ├── Composition.hs │ │ │ ├── CopyRec.hs │ │ │ ├── DBMovies.hs │ │ │ ├── DataBase.hs │ │ │ ├── Dropwhile.hs │ │ │ ├── Filter.lhs │ │ │ ├── FindRec.hs │ │ │ ├── FoldAbs.hs │ │ │ ├── ICFP15.lhs │ │ │ ├── IfM.hs │ │ │ ├── IfM2.hs │ │ │ ├── Incr.hs │ │ │ ├── Incr_elim.hs │ │ │ ├── Overview.lhs │ │ │ ├── Privileges.hs │ │ │ ├── RIO.hs │ │ │ ├── RIO2.hs │ │ │ ├── TestM.hs │ │ │ ├── TwiceM.hs │ │ │ ├── WhileM.hs │ │ │ └── WhileTest.hs │ │ └── todo │ │ │ ├── Append_T.hs │ │ │ ├── Dyn.hs │ │ │ ├── FindRec.hs │ │ │ ├── Reverse.hs │ │ │ └── WhileM.hs │ ├── kmeans-0.1.2 │ │ ├── Data │ │ │ ├── KMeans.hs │ │ │ ├── KMeans.orig.hs │ │ │ └── KMeans0.hs │ │ ├── LICENSE │ │ ├── Setup.lhs │ │ └── kmeans.cabal │ ├── llrbtree-0.1.1 │ │ ├── Data │ │ │ ├── Heap │ │ │ │ ├── Binominal.hs │ │ │ │ ├── Leftist.hs │ │ │ │ ├── Skew.hs │ │ │ │ └── Splay.hs │ │ │ └── Set │ │ │ │ ├── BUSplay.hs │ │ │ │ ├── LLRBTree.hs │ │ │ │ ├── RBTree-appel-height.hs │ │ │ │ ├── RBTree-appel.hs │ │ │ │ ├── RBTree-mini-color.hs │ │ │ │ ├── RBTree-mini.hs │ │ │ │ ├── RBTree-ord.hs │ │ │ │ ├── RBTree.hs │ │ │ │ ├── RBTree0.hs │ │ │ │ ├── Splay.hs │ │ │ │ ├── Splay0.hs │ │ │ │ ├── WBTree.hs │ │ │ │ └── fixme.hs │ │ ├── LICENSE │ │ ├── Setup.hs │ │ └── llrbtree.cabal │ ├── nofib │ │ └── imaginary │ │ │ ├── bernouilli │ │ │ └── Main.hs │ │ │ ├── digits-of-e1 │ │ │ └── Main.lhs │ │ │ ├── digits-of-e2 │ │ │ └── Main.lhs │ │ │ ├── exp3_8 │ │ │ └── Main.hs │ │ │ ├── gen_regexps │ │ │ └── Main.hs │ │ │ ├── integrate │ │ │ └── Main.hs │ │ │ ├── paraffins │ │ │ └── Main.hs │ │ │ ├── primes │ │ │ └── Main.hs │ │ │ ├── queens │ │ │ └── Main.hs │ │ │ ├── rfib │ │ │ └── Main.hs │ │ │ ├── tak │ │ │ └── Main.hs │ │ │ ├── wheel-sieve1 │ │ │ └── Main.hs │ │ │ ├── wheel-sieve2 │ │ │ └── Main.hs │ │ │ └── x2n1 │ │ │ └── Main.hs │ ├── originals │ │ ├── base-4.5.1.0.tar.gz │ │ ├── bytestring-0.9.0.2.tar.gz │ │ ├── containers-0.5.0.0.tar.gz │ │ ├── ghc-7.4.1.tgz │ │ ├── hmatrix-0.15.0.1.tar.gz │ │ ├── llrbtree-0.1.1.tar.gz │ │ ├── text-0.11.2.3.tar.gz │ │ ├── unordered-containers-0.2.1.0.tar.gz │ │ ├── vector-0.10.0.1.tar.gz │ │ ├── vector-0.9.1.tar.gz │ │ ├── vector-algorithms-0.5.4.2.tar.gz │ │ ├── wouter-swierstra-xmonad-7715ec2.zip │ │ └── xmonad-0.10.tar.gz │ ├── popl18 │ │ ├── lib │ │ │ ├── Helper.hs │ │ │ ├── Proves.hs │ │ │ └── prover-ple-lib.cabal │ │ ├── nople │ │ │ ├── neg │ │ │ │ ├── Ackermann.hs │ │ │ │ ├── Append.hs │ │ │ │ ├── ApplicativeList.hs │ │ │ │ ├── ApplicativeMaybe.hs │ │ │ │ ├── BasicLambdas.hs │ │ │ │ ├── Fibonacci.hs │ │ │ │ ├── FunctorList.hs │ │ │ │ ├── FunctorMaybe.hs │ │ │ │ ├── MapFusion.hs │ │ │ │ ├── MonadList.hs │ │ │ │ ├── MonadMaybe.hs │ │ │ │ └── MonadReader.hs │ │ │ ├── pos │ │ │ │ ├── Ackermann.hs │ │ │ │ ├── Append.hs │ │ │ │ ├── ApplicativeId.hs │ │ │ │ ├── ApplicativeList.hs │ │ │ │ ├── ApplicativeMaybe.hs │ │ │ │ ├── ApplicativeReader.hs │ │ │ │ ├── BasicLambdas.hs │ │ │ │ ├── Compose.hs │ │ │ │ ├── Euclide.hs │ │ │ │ ├── Fibonacci.hs │ │ │ │ ├── FoldrUniversal.hs │ │ │ │ ├── FunctorId.hs │ │ │ │ ├── FunctorList.hs │ │ │ │ ├── FunctorMaybe.hs │ │ │ │ ├── FunctorReader.hs │ │ │ │ ├── FunctorReader_NoExtensionality.hs │ │ │ │ ├── MapFusion.hs │ │ │ │ ├── MonadId.hs │ │ │ │ ├── MonadList.hs │ │ │ │ ├── MonadMaybe.hs │ │ │ │ ├── MonadReader.hs │ │ │ │ ├── MonoidList.hs │ │ │ │ ├── MonoidMaybe.hs │ │ │ │ ├── NatInduction.hs │ │ │ │ ├── NaturalDeduction.hs │ │ │ │ ├── Overview.hs │ │ │ │ ├── OverviewListInfix.hs │ │ │ │ ├── Peano.hs │ │ │ │ ├── Solver.hs │ │ │ │ └── Unification.hs │ │ │ └── todo │ │ │ │ └── Soundness.hs │ │ └── ple │ │ │ └── pos │ │ │ ├── Ackermann.hs │ │ │ ├── Append.hs │ │ │ ├── ApplicativeId.hs │ │ │ ├── ApplicativeList.hs │ │ │ ├── ApplicativeMaybe.hs │ │ │ ├── BasicLambdas.hs │ │ │ ├── Compose.hs │ │ │ ├── Euclide.hs │ │ │ ├── Fibonacci.hs │ │ │ ├── FoldrUniversal.hs │ │ │ ├── FunctorId.hs │ │ │ ├── FunctorList.hs │ │ │ ├── FunctorMaybe.hs │ │ │ ├── Lists.hs │ │ │ ├── MapFusion.hs │ │ │ ├── Maybe.hs │ │ │ ├── MonadId.hs │ │ │ ├── MonadList.hs │ │ │ ├── MonadMaybe.hs │ │ │ ├── MonoidList.hs │ │ │ ├── MonoidMaybe.hs │ │ │ ├── NatInduction.hs │ │ │ ├── NaturalDeduction.hs │ │ │ ├── Overview.hs │ │ │ ├── OverviewListInfix.hs │ │ │ ├── Peano.hs │ │ │ ├── Solver.hs │ │ │ └── Unification.hs │ ├── sf │ │ ├── Basics.hs │ │ ├── Induction.hs │ │ ├── InductionRJ.hs │ │ └── Lists.hs │ ├── stitch-lh │ │ ├── .gitignore │ │ ├── CHANGES.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── main │ │ │ └── Main.hs │ │ ├── nixpkgs.nix │ │ ├── shell-stack.nix │ │ ├── shell.nix │ │ ├── src │ │ │ └── Language │ │ │ │ └── Stitch │ │ │ │ └── LH │ │ │ │ ├── CSE.hs │ │ │ │ ├── Check.hs │ │ │ │ ├── Data │ │ │ │ ├── List.hs │ │ │ │ └── Nat.hs │ │ │ │ ├── Eval.hs │ │ │ │ ├── Lex.hs │ │ │ │ ├── Monad.hs │ │ │ │ ├── Op.hs │ │ │ │ ├── Parse.hs │ │ │ │ ├── Pretty.hs │ │ │ │ ├── Repl.hs │ │ │ │ ├── Statement.hs │ │ │ │ ├── Step.hs │ │ │ │ ├── Token.hs │ │ │ │ ├── Type.hs │ │ │ │ ├── Unchecked.hs │ │ │ │ └── Util.hs │ │ ├── stack.yaml │ │ ├── stitch-lh.cabal │ │ └── tests │ │ │ ├── Tests │ │ │ ├── Check.hs │ │ │ ├── Lex.hs │ │ │ ├── Main.hs │ │ │ ├── Parse.hs │ │ │ └── Util.hs │ │ │ ├── prime.stitch │ │ │ └── revapp.stitch │ ├── text-0.11.2.3 │ │ ├── Data │ │ │ ├── Text.hs │ │ │ └── Text │ │ │ │ ├── Array.hs │ │ │ │ ├── Axioms.hs │ │ │ │ ├── Encoding.hs │ │ │ │ ├── Encoding │ │ │ │ ├── Error.hs │ │ │ │ ├── Fusion.hs │ │ │ │ ├── Fusion │ │ │ │ │ └── Common.hs │ │ │ │ ├── Utf16.hs │ │ │ │ ├── Utf32.hs │ │ │ │ └── Utf8.hs │ │ │ │ ├── Foreign.hs │ │ │ │ ├── Fusion-debug.hs │ │ │ │ ├── Fusion.hs │ │ │ │ ├── Fusion │ │ │ │ ├── CaseMapping.hs │ │ │ │ ├── Common.hs │ │ │ │ ├── Internal.hs │ │ │ │ └── Size.hs │ │ │ │ ├── IO.hs │ │ │ │ ├── IO │ │ │ │ └── Internal.hs │ │ │ │ ├── Internal.hs │ │ │ │ ├── Lazy.hs │ │ │ │ ├── Lazy │ │ │ │ ├── Builder.hs │ │ │ │ ├── Builder │ │ │ │ │ ├── Functions.hs │ │ │ │ │ ├── Int.hs │ │ │ │ │ ├── RealFloat.hs │ │ │ │ │ └── RealFloat │ │ │ │ │ │ └── Functions.hs │ │ │ │ ├── Encoding.hs │ │ │ │ ├── Encoding │ │ │ │ │ └── Fusion.hs │ │ │ │ ├── Fusion.hs │ │ │ │ ├── IO.hs │ │ │ │ ├── Internal.hs │ │ │ │ ├── Read.hs │ │ │ │ └── Search.hs │ │ │ │ ├── Private.hs │ │ │ │ ├── Read.hs │ │ │ │ ├── Search.hs │ │ │ │ ├── Unsafe.hs │ │ │ │ ├── Unsafe │ │ │ │ └── Base.hs │ │ │ │ ├── UnsafeChar.hs │ │ │ │ ├── UnsafeShift.hs │ │ │ │ └── Util.hs │ │ ├── LICENSE │ │ ├── LIQUID.txt │ │ ├── README.markdown │ │ ├── Setup.lhs │ │ ├── cbits │ │ │ └── cbits.c │ │ ├── count.py │ │ ├── count.sh │ │ ├── tests-and-benchmarks.markdown │ │ └── text.cabal │ ├── unordered-containers-0.2.1.0 │ │ ├── Data │ │ │ ├── HashMap │ │ │ │ ├── Array.hs │ │ │ │ ├── Base.hs │ │ │ │ ├── Lazy.hs │ │ │ │ ├── PopCount.hs │ │ │ │ ├── Strict.hs │ │ │ │ └── UnsafeShift.hs │ │ │ └── HashSet.hs │ │ ├── LICENSE │ │ ├── Setup.hs │ │ ├── cbits │ │ │ └── popc.c │ │ ├── tests │ │ │ ├── HashMapProperties.hs │ │ │ ├── HashSetProperties.hs │ │ │ └── Regressions.hs │ │ └── unordered-containers.cabal │ ├── vector-0.10.0.1 │ │ ├── Data │ │ │ ├── Vector.hs │ │ │ └── Vector │ │ │ │ ├── Fusion │ │ │ │ ├── Stream.hs │ │ │ │ ├── Stream │ │ │ │ │ ├── Monadic.hs │ │ │ │ │ ├── Monadic.nocpp.hs │ │ │ │ │ └── Size.hs │ │ │ │ └── Util.hs │ │ │ │ ├── Generic.hs │ │ │ │ ├── Generic.nocpp.hs │ │ │ │ ├── Generic │ │ │ │ ├── Base.hs │ │ │ │ ├── Mutable.hs │ │ │ │ ├── New.hs │ │ │ │ ├── New.nocpp.hs │ │ │ │ └── New0.hs │ │ │ │ ├── Internal │ │ │ │ └── Check.hs │ │ │ │ ├── Mutable.hs │ │ │ │ ├── Primitive.hs │ │ │ │ ├── Primitive │ │ │ │ ├── Mutable.hs │ │ │ │ └── Mutable.nocpp.hs │ │ │ │ ├── Storable.hs │ │ │ │ ├── Storable │ │ │ │ ├── Internal.hs │ │ │ │ └── Mutable.hs │ │ │ │ ├── Unboxed.hs │ │ │ │ └── Unboxed │ │ │ │ ├── Base.hs │ │ │ │ └── Mutable.hs │ │ ├── LICENSE │ │ ├── Setup.hs │ │ ├── include │ │ │ └── vector.h │ │ ├── internal │ │ │ ├── GenUnboxTuple.hs │ │ │ └── unbox-tuple-instances │ │ └── vector.cabal │ ├── vector-algorithms-0.5.4.2 │ │ ├── Data │ │ │ └── Vector │ │ │ │ └── Algorithms │ │ │ │ ├── AmericanFlag.hs │ │ │ │ ├── Combinators.hs │ │ │ │ ├── Common.hs │ │ │ │ ├── Heap.hs │ │ │ │ ├── Insertion.hs │ │ │ │ ├── Intro.hs │ │ │ │ ├── Merge.hs │ │ │ │ ├── Optimal.hs │ │ │ │ ├── Radix.hs │ │ │ │ ├── Search.hs │ │ │ │ └── Termination.hs │ │ ├── LICENSE │ │ ├── Setup.lhs │ │ ├── count.py │ │ ├── count.sh │ │ ├── include │ │ │ └── vector.h │ │ ├── liquid.sh │ │ └── vector-algorithms.cabal │ ├── xmonad-0.10 │ │ ├── CONFIG │ │ ├── LICENSE │ │ ├── Main.hs │ │ ├── README │ │ ├── STYLE │ │ ├── Setup.lhs │ │ ├── TODO │ │ ├── XMonad.hs │ │ ├── XMonad │ │ │ ├── Config.hs │ │ │ ├── Core.hs │ │ │ ├── Layout.hs │ │ │ ├── LiquidStackSet.lhs │ │ │ ├── Main.hsc │ │ │ ├── ManageHook.hs │ │ │ ├── Operations.hs │ │ │ └── StackSet.hs │ │ ├── man │ │ │ ├── xmonad.1 │ │ │ ├── xmonad.1.markdown │ │ │ └── xmonad.hs │ │ ├── tests │ │ │ ├── Properties.hs │ │ │ └── loc.hs │ │ ├── util │ │ │ └── GenerateManpage.hs │ │ └── xmonad.cabal │ └── xmonad-0.11 │ │ ├── XMonad │ │ └── StackSet.hs │ │ └── tests │ │ └── Properties.txt ├── cabal_driver │ └── driver.hs ├── classes │ ├── neg │ │ ├── Class00.hs │ │ ├── Class01.hs │ │ ├── Inst00.hs │ │ └── RealProps0.hs │ └── pos │ │ ├── Class00.hs │ │ ├── HiddenMethod00.hs │ │ ├── Inst00.hs │ │ ├── RealProps0.hs │ │ ├── RealProps1.hs │ │ ├── STMonad.hs │ │ ├── TypeEquality00.hs │ │ └── TypeEquality01.hs ├── datacon │ ├── neg │ │ ├── AdtPeano2.hs │ │ ├── Data00.hs │ │ ├── Data00Lib.hs │ │ ├── Data01.hs │ │ ├── Data02.hs │ │ ├── Data02Lib.hs │ │ ├── Date.hs │ │ ├── NewTypes.hs │ │ └── NewTypes0.hs │ └── pos │ │ ├── AdtPeano2.hs │ │ ├── Data00.hs │ │ ├── Data00Lib.hs │ │ ├── Data01.hs │ │ ├── Data02.hs │ │ ├── Data02Lib.hs │ │ ├── Date.hs │ │ ├── NewType.hs │ │ ├── T1446.hs │ │ ├── T1473A.hs │ │ ├── T1473B.hs │ │ ├── T1476.hs │ │ ├── T1477.hs │ │ └── T1777.hs ├── errors │ ├── AmbiguousInline.hs │ ├── AmbiguousReflect.hs │ ├── BadAliasApp.hs │ ├── BadAnnotation.hs │ ├── BadAnnotation1.hs │ ├── BadData0.hs │ ├── BadData1.hs │ ├── BadData2.hs │ ├── BadDataCon2.hs │ ├── BadDataConType.hs │ ├── BadDataConType1.hs │ ├── BadDataConType2.hs │ ├── BadDataDeclTyVars.hs │ ├── BadGADT.hs │ ├── BadPragma0.hs │ ├── BadPragma1.hs │ ├── BadPragma2.hs │ ├── BadPredApp.hs │ ├── BadQualifier.hs │ ├── BadSig0.hs │ ├── BadSig1.hs │ ├── BadSyn1.hs │ ├── BadSyn2.hs │ ├── BadSyn3.hs │ ├── BadSyn4.hs │ ├── CyclicExprAlias0.hs │ ├── CyclicExprAlias1.hs │ ├── CyclicExprAlias2.hs │ ├── CyclicExprAlias3.hs │ ├── CyclicPredAlias0.hs │ ├── CyclicPredAlias1.hs │ ├── CyclicPredAlias2.hs │ ├── CyclicPredAlias3.hs │ ├── CyclicTypeAlias0.hs │ ├── CyclicTypeAlias1.hs │ ├── CyclicTypeAlias2.hs │ ├── CyclicTypeAlias3.hs │ ├── DupAlias.hs │ ├── DupData.hs │ ├── DupFunSigs.hs │ ├── DupMeasure.hs │ ├── ElabLocation.hs │ ├── ElabLocation2.hs │ ├── ElabLocation3.hs │ ├── EmptyData.hs │ ├── ErrLocation.hs │ ├── ErrLocation2.hs │ ├── ExportMeasure0.hs │ ├── ExportReflect0.hs │ ├── Fractional.hs │ ├── HigherOrderBinder.hs │ ├── HoleCrash1.hs │ ├── HoleCrash2.hs │ ├── HoleCrash3.hs │ ├── Inconsistent0.hs │ ├── Inconsistent1.hs │ ├── Inconsistent2.hs │ ├── InlineSubExp0.hs │ ├── InlineSubExp1.hs │ ├── IrregularData.hs │ ├── LiftMeasureCase.hs │ ├── LocalHole.hs │ ├── MissingAssume.hs │ ├── MissingField1.hs │ ├── MissingReflect.hs │ ├── MissingSizeFun.hs │ ├── MultiInstMeasures.hs │ ├── MultiRecSels.hs │ ├── Positivity1.hs │ ├── Positivity2.hs │ ├── PositivityCheck.hs │ ├── ReWrite5.hs │ ├── ReWrite6.hs │ ├── ReWrite7.hs │ ├── ReWrite8.hs │ ├── ReflectLam.hs │ ├── ShadowFieldInline.hs │ ├── ShadowFieldReflect.hs │ ├── ShadowMeasure.hs │ ├── ShadowMeasureVar.hs │ ├── SplitSubtype.hs │ ├── T1140.hs │ ├── T1498.hs │ ├── T1498A.hs │ ├── T2346.hs │ ├── T773.hs │ ├── T774.hs │ ├── TODOUnboundAbsRef.hs │ ├── TODOVarInTypeAlias.hs │ ├── TerminationExprNum.hs │ ├── TerminationExprSort.hs │ ├── TerminationExprUnb.hs │ ├── UnboundAbsRef.hs │ ├── UnboundCheckVar.hs │ ├── UnboundFunInSpec.hs │ ├── UnboundFunInSpec1.hs │ ├── UnboundFunInSpec2.hs │ ├── UnboundVarInAssume.hs │ ├── UnboundVarInLocSig.hs │ └── UnboundVarInSpec.hs ├── ffi-include │ ├── foo.c │ └── foo.h ├── golden │ ├── json_output.golden │ └── json_output.hs ├── gradual │ ├── neg │ │ ├── Gradual.hs │ │ ├── Interpretations.hs │ │ └── Intro.hs │ ├── pos │ │ ├── Discussion.hs │ │ ├── Dynamic.hs │ │ ├── Gradual.hs │ │ ├── Interpretations.hs │ │ └── Intro.hs │ └── todo │ │ └── Measures.hs ├── harness │ └── Test │ │ ├── Build.hs │ │ ├── Groups.hs │ │ └── Options.hs ├── import │ ├── client │ │ ├── C.hs │ │ ├── CliAliasGen00.hs │ │ ├── CliRedBlue.hs │ │ ├── Client0.hs │ │ ├── Client1Lib.hs │ │ ├── Client2Lib.hs │ │ ├── ExactGADT9.hs │ │ ├── FunClashLibLibClient.hs │ │ ├── LibRedBlue.hs │ │ ├── LiquidArrayInit.hs │ │ ├── LiquidArrayNullTerm.hs │ │ ├── ListClient.hs │ │ ├── NameClashClient.hs │ │ ├── RC1015.hs │ │ ├── ReExportClient.hs │ │ ├── ReflectClient0.hs │ │ ├── ReflectClient1.hs │ │ ├── ReflectClient2.hs │ │ ├── ReflectClient3.hs │ │ ├── ReflectClient4.hs │ │ ├── ReflectClient4a.hs │ │ ├── ReflectClient5.hs │ │ ├── ReflectClient6.hs │ │ ├── ReflectClient7.hs │ │ ├── ReflectClient8.hs │ │ ├── RewriteClient.hs │ │ ├── STClient.hs │ │ ├── T1096_Foo.hs │ │ ├── T1104Client.hs │ │ ├── T1117.hs │ │ ├── T1118.hs │ │ ├── T1180.hs │ │ ├── T1688.hs │ │ ├── T1738.hs │ │ ├── T2198.hs │ │ └── WrapClient.hs │ ├── deps │ │ ├── ALib.hs │ │ ├── BLib.hs │ │ ├── CLib.hs │ │ └── D.hs │ └── lib │ │ ├── B.hs │ │ ├── ExactGADT8Lib.hs │ │ ├── FunClashLib.hs │ │ ├── FunClashLibLib.hs │ │ ├── Language.hs │ │ ├── LibAliasGen00.hs │ │ ├── LibBlue.hs │ │ ├── LibRed.hs │ │ ├── LiquidArrayLib.hs │ │ ├── ListLib.hs │ │ ├── NameClashLib.hs │ │ ├── PeanoLib.hs │ │ ├── RL1015Lib.hs │ │ ├── ReExportLib.hs │ │ ├── ReflectLib0.hs │ │ ├── ReflectLib1.hs │ │ ├── ReflectLib2.hs │ │ ├── ReflectLib3.hs │ │ ├── ReflectLib4.hs │ │ ├── ReflectLib5.hs │ │ ├── ReflectLib6.hs │ │ ├── ReflectLib7.hs │ │ ├── ReflectLib8.hs │ │ ├── RewriteLib.hs │ │ ├── STLib.hs │ │ ├── SpecLib.hs │ │ ├── T1096_TypesLib.hs │ │ ├── T1102_LibX.hs │ │ ├── T1102_LibY.hs │ │ ├── T1102_LibZ.hs │ │ ├── T1104Lib.hs │ │ ├── T1112.hs │ │ ├── T1112Lib.hs │ │ ├── T1117Lib.hs │ │ ├── T1118Lib1.hs │ │ ├── T1118Lib2.hs │ │ ├── T1688Lib.hs │ │ ├── T1738Lib.hs │ │ ├── WrapLib.hs │ │ └── WrapLibCode.hs ├── liquidhaskell-test │ ├── Main.hs │ └── QuotRem.hs ├── log │ ├── summary-develop.csv │ └── summary-map_fusion.csv ├── logs │ ├── borscht-2015-06-09T20-35-28 │ │ └── summary.csv │ ├── borscht-2015-07-23T20-12-37 │ │ └── summary.csv │ ├── compare-PLE.csv │ ├── compare-develop-gradual.csv │ ├── defunctionalized.csv │ ├── f4764fa7e9b3992c80c4d9f73cbfbcaea4c16071-all-import.csv │ ├── f4764fa7e9b3992c80c4d9f73cbfbcaea4c16071-no-import.csv │ ├── f4764fa7e9b3992c80c4d9f73cbfbcaea4c16071-used-import.csv │ ├── gradual-with-bools.csv │ ├── gradual.csv │ ├── regrtest_results_goto_Fri_Feb__8_2013_POST_SPLITFIX_HUGHESPJ │ ├── regrtest_results_goto_Fri_Sep_21_171954_2012 │ ├── regrtest_results_goto_Mon_Feb__4_082521_2013 │ ├── regrtest_results_goto_Mon_Jul_14_master │ ├── regrtest_results_goto_Mon_Jul_14_post_parseparens │ ├── regrtest_results_goto_Mon_Oct_22_154504_2012 │ ├── regrtest_results_goto_Mon_Oct_22_205256_2012 │ ├── regrtest_results_goto_Sat_Feb_23_183819_2013 │ ├── regrtest_results_goto_Sun_Jan_13_171109_2013 │ ├── regrtest_results_goto_Sun_Jul_13_221212_2014_post_errormsg_parseparens │ ├── regrtest_results_goto_Sun_Oct_28_172434_2012 │ ├── regrtest_results_goto_Thu_Nov_21_2013-lazyinst │ ├── regrtest_results_goto_Thu_Nov_21_2013-master │ ├── regrtest_results_goto_Tue_Jul_15-post-parseparens-and-errormsg-improved │ ├── regrtest_results_goto_Wed_Nov_20_152850_2013-master │ ├── regrtest_results_goto_post_qualshrink_Mon_Jul_22_2013 │ ├── regrtest_results_goto_smtlib1_Thu_Jul_18_2013 │ ├── regrtest_results_goto_z3mem_Thu_Jul_18_2013 │ ├── regrtest_results_goto_z3mem_Thu_Jul_18_new_2013 │ ├── regrtest_results_nikiL_Fri_Mar_29_125637_2013 │ ├── regrtest_results_ubuntu_Fri_Jul_29_173855_2011 │ ├── regrtest_results_ubuntu_Mon_Dec__5_033239_2011 │ ├── regrtest_results_ubuntu_Sun_Sep_11_155257_2011 │ ├── regrtest_results_ubuntu_Sun_Sep_11_193855_2011 │ ├── regrtest_results_ubuntu_Sun_Sep_11_201206_2011 │ ├── regrtest_results_ubuntu_Thu_Dec_22_025146_2011 │ ├── regrtest_results_ubuntu_Tue_Jul_19_100718_2011 │ ├── regrtest_results_ubuntu_Wed_Dec_21_031145_2011 │ ├── regrtest_results_ubuntu_Wed_Dec_21_031429_2011 │ ├── regrtest_results_ubuntu_Wed_Dec_21_164526_2011 │ ├── regrtest_results_ubuntu_Wed_Dec_21_180931_2011 │ ├── regrtest_results_ubuntu_Wed_Dec_21_184219_2011 │ ├── regrtest_results_ubuntu_Wed_Dec_21_191326_2011 │ ├── regrtest_results_ubuntu_Wed_Dec_21_191410_2011 │ ├── regrtest_results_ubuntu_Wed_Sep__7_144519_2011 │ ├── slowdown.csv │ ├── summary-develop-for-gradual.csv │ ├── summary-develop.csv │ ├── summary-first-ghc8.csv │ ├── summary-fix-inst-borscht-9-27-2015.csv │ ├── summary-last-ghc7.csv │ ├── summary-master-borscht-9-27-2015.csv │ ├── summary-new.csv │ ├── summary-old-dev.csv │ ├── summary-old-develop.csv │ ├── summary-pAnd.csv │ ├── summary-ple.csv │ ├── summary-symbol-borscht-10-08-2015.csv │ ├── summary-symbol-intern-borscht-10-08-2015.csv │ └── typeclasses-analysis │ │ ├── analysis.R │ │ ├── compare-typeclass.csv │ │ ├── summary_dev.csv │ │ └── summary_typeclasses.csv ├── measure │ ├── neg │ │ ├── Bag.hs │ │ ├── Fst00.hs │ │ ├── Fst01.hs │ │ ├── Fst02.hs │ │ ├── GList00Lib.hs │ │ ├── Len00.hs │ │ ├── Len01.hs │ │ ├── List00.hs │ │ ├── List01.hs │ │ ├── List02.hs │ │ ├── Ple0.hs │ │ ├── Ple1.hs │ │ ├── Ple1Lib.hs │ │ └── Using00.hs │ └── pos │ │ ├── AbsMeasure.hs │ │ ├── Bag.hs │ │ ├── ExactFunApp.hs │ │ ├── Fst00.hs │ │ ├── Fst01.hs │ │ ├── Fst02.hs │ │ ├── GList000.hs │ │ ├── GList00Lib.hs │ │ ├── HiddenData.hs │ │ ├── HiddenDataLib.hs │ │ ├── Len00.hs │ │ ├── Len01.hs │ │ ├── Len02.hs │ │ ├── List00.hs │ │ ├── List00Lib.hs │ │ ├── List01.hs │ │ ├── List02.hs │ │ ├── List02Lib.hs │ │ ├── Ple00.hs │ │ ├── Ple01.hs │ │ ├── Ple1.hs │ │ ├── Ple1Lib.hs │ │ ├── PruneHO.hs │ │ ├── RecordAccessors.hs │ │ └── Using00.hs ├── name-resolution │ └── pos │ │ ├── A.hs │ │ ├── AData.hs │ │ ├── B.hs │ │ ├── BData.hs │ │ ├── C.hs │ │ ├── CData.hs │ │ └── MainData.hs ├── names │ ├── neg │ │ ├── Assume00.hs │ │ ├── Capture01.hs │ │ ├── DuplicatedAliases.hs │ │ ├── Local00.hs │ │ ├── Nat1.hs │ │ ├── Nat2.hs │ │ ├── QualifiedAliases.hs │ │ ├── Set00.hs │ │ ├── Set01.hs │ │ ├── Set02.hs │ │ ├── T1078.hs │ │ ├── Vector0.hs │ │ └── Vector1.hs │ └── pos │ │ ├── Alias00.hs │ │ ├── Assume00.hs │ │ ├── Assume01.hs │ │ ├── BasicLambdas00.hs │ │ ├── BasicLambdas01.hs │ │ ├── Capture01.hs │ │ ├── Capture02.hs │ │ ├── ClojurVector.hs │ │ ├── DataFields.hs │ │ ├── ExpandsDependentPairs.hs │ │ ├── HideName00.hs │ │ ├── HidePrelude.hs │ │ ├── List00.hs │ │ ├── Local00.hs │ │ ├── Local01.hs │ │ ├── Local02.hs │ │ ├── Local03.hs │ │ ├── LocalAssume.hs │ │ ├── LocalSpec.hs │ │ ├── Ord.hs │ │ ├── Set00.hs │ │ ├── Set01.hs │ │ ├── Set02.hs │ │ ├── Shadow00.hs │ │ ├── Shadow01.hs │ │ ├── T1521.hs │ │ ├── T675.hs │ │ ├── Uniques.hs │ │ ├── Vector0.hs │ │ ├── Vector04.hs │ │ └── Vector1.hs ├── neg │ ├── AbsApp.hs │ ├── AbsNegTest.hs │ ├── AdtPeano0.hs │ ├── AdtPeano1.hs │ ├── Alias00.hs │ ├── Ass0.hs │ ├── Ast.hs │ ├── AutoSize.hs │ ├── AutoTerm1.hs │ ├── Automate.hs │ ├── BadNats.hs │ ├── Bag1.hs │ ├── Baz.hs │ ├── BigNum.hs │ ├── BinarySearchOverflow.hs │ ├── Books.hs │ ├── CastedTotality.hs │ ├── CharLiterals.hs │ ├── CheckedNum.hs │ ├── CheckedNumLib.hs │ ├── Class1.hs │ ├── Class2.hs │ ├── Class3.hs │ ├── Class4.hs │ ├── CompareConstraints.hs │ ├── Concat.hs │ ├── Concat1.hs │ ├── Concat2.hs │ ├── Constraints.hs │ ├── ConstraintsAppend.hs │ ├── Contra0.hs │ ├── Coretologic.hs │ ├── CosNegTest.hs │ ├── Csv.hs │ ├── Datacon_eq.hs │ ├── DependentTypes.hs │ ├── Elim000.hs │ ├── Elim_ex_compose.hs │ ├── Elim_ex_let.hs │ ├── Elim_ex_list.hs │ ├── Elim_ex_map_1.hs │ ├── Elim_ex_map_2.hs │ ├── Elim_ex_map_3.hs │ ├── Errmsg.hs │ ├── Errorloc.hs │ ├── Eval.hs │ ├── EvalQuery.hs │ ├── Ex0_unsafe.hs │ ├── Ex1_unsafe.hs │ ├── ExactADT6.hs │ ├── ExactGADT6.hs │ ├── ExactGADT7.hs │ ├── ExpNegTest.hs │ ├── Exponential1NegTest.hs │ ├── Exponential2NegTest.hs │ ├── ExponentiationNegTest.hs │ ├── Fail.hs │ ├── Fail1.hs │ ├── FancyTerm.hs │ ├── FilterAbs.hs │ ├── FoldN.hs │ ├── FoldN1.hs │ ├── FunSoundness.hs │ ├── FunctionRef.hs │ ├── GeneralizedTermination.hs │ ├── Grty0.hs │ ├── Grty1.hs │ ├── Grty2.hs │ ├── Grty3.hs │ ├── HasElem.hs │ ├── Hex00.hs │ ├── HigherOrder.hs │ ├── HolesTop.hs │ ├── Inc2.hs │ ├── IntAbsRef.hs │ ├── LazyWhere.hs │ ├── LazyWhere1.hs │ ├── LetRecStack.hs │ ├── List00.hs │ ├── ListConcat.hs │ ├── ListElem.hs │ ├── ListKeys.hs │ ├── ListMSort.hs │ ├── ListRange.dat │ ├── ListRange.hs │ ├── Listne.hs │ ├── Lit.hs │ ├── LocalSpec.hs │ ├── LogNegTest.hs │ ├── Mapreduce.hs │ ├── Mapreduce_tiny.hs │ ├── Maps.hs │ ├── Maybe.hs │ ├── MaybeMonad.hs │ ├── Meas0.hs │ ├── Meas2.hs │ ├── Meas3.hs │ ├── Meas7.hs │ ├── Meas9.hs │ ├── MeasureContains.hs │ ├── MeasureDups.hs │ ├── MergeSort.hs │ ├── Monad3.hs │ ├── Monad4.hs │ ├── Monad5.hs │ ├── Monad6.hs │ ├── Monad7.hs │ ├── Mr00.hs │ ├── MultiParamTypeClasses.hs │ ├── Multi_pred_app_00.hs │ ├── MultipleInvariants.hs │ ├── MyBag.hs │ ├── MyBagDefine.hs │ ├── NameResolution.hs │ ├── NestedRecursion.hs │ ├── NoExhaustiveGuardsError.hs │ ├── NoMethodBindingError.hs │ ├── Null.hs │ ├── Pair.hs │ ├── Pair0.hs │ ├── PairMeasure.hs │ ├── Pargs.hs │ ├── Pargs1.hs │ ├── Partial.hs │ ├── Poly0.hs │ ├── Poly1.hs │ ├── Poly2.hs │ ├── Poly2_degenerate.hs │ ├── Polypred.hs │ ├── Poslist.hs │ ├── Pred.hs │ ├── Propability.hs │ ├── Propability0.hs │ ├── Prune0.hs │ ├── QQTySig.hs │ ├── QQTySyn1.hs │ ├── QQTySyn2.hs │ ├── RG.hs │ ├── Range.hs │ ├── ReWrite.hs │ ├── ReWrite2.hs │ ├── ReWrite3.hs │ ├── ReWrite4.hs │ ├── Rebind.hs │ ├── RecQSort.hs │ ├── RecSelector.hs │ ├── Record0.hs │ ├── RefCtor.hs │ ├── RefinedProp.hs │ ├── Revshape.hs │ ├── Risers.hs │ ├── SafePartialFunctions.hs │ ├── SinNegTest.hs │ ├── Solver.hs │ ├── SqrtNegTest.hs │ ├── Stacks.hs │ ├── State0.hs │ ├── State00.hs │ ├── StateConstraints.hs │ ├── StateConstraints0.hs │ ├── StateConstraints00.hs │ ├── StrictPair0.hs │ ├── StrictPair1.hs │ ├── String00.hs │ ├── Strings.hs │ ├── SumPoly.hs │ ├── Sumk.hquals │ ├── Sumk.hs │ ├── T1095C.hs │ ├── T1126.hs │ ├── T1198_3.hs │ ├── T1267.hs │ ├── T1286.hs │ ├── T1288.hs │ ├── T1490.hs │ ├── T1490A.hs │ ├── T1498.hs │ ├── T1498A.hs │ ├── T1546.hs │ ├── T1553.hs │ ├── T1553A.hs │ ├── T1555.hs │ ├── T1577.hs │ ├── T1604.hs │ ├── T1613.hs │ ├── T1642A.hs │ ├── T1657.hs │ ├── T1657A.hs │ ├── T1659.hs │ ├── T1814.hs │ ├── T1907.hs │ ├── T602.hs │ ├── T743.hs │ ├── T743_mini.hs │ ├── TermReal.hs │ ├── TerminationNum.hs │ ├── TerminationNum0.hs │ ├── Test00.hs │ ├── Test00a.hs │ ├── Test00b.hs │ ├── Test00c.hs │ ├── Test1.hs │ ├── Test2.hs │ ├── TopLevel.hs │ ├── TotalHaskell.hs │ ├── Trans.hs │ ├── Truespec.hs │ ├── Tyclass0_unsafe.hs │ ├── TypeLitNat.hs │ ├── Variance.hs │ ├── Variance1.hs │ ├── Vector00.hs │ ├── Vector0a.hs │ ├── Vector1a.hs │ ├── Vector2.hs │ ├── VerifiedNum.hs │ ├── Wrap0.hs │ └── Wrap1.hs ├── parser │ └── pos │ │ ├── NestedTuples.hs │ │ ├── Parens.hs │ │ ├── ReflectedInfix.hs │ │ ├── T1012.hs │ │ ├── T1481.hs │ │ ├── T1531.hs │ │ ├── T338.hs │ │ ├── T871.hs │ │ ├── T873.hs │ │ ├── T884.hs │ │ ├── T892.hs │ │ ├── TokensAsPrefixes.hs │ │ └── Tuples.hs ├── parsing-errors │ ├── EmptySig.hs │ ├── ParseBind.hs │ ├── ParseClass.hs │ └── app │ │ └── Main.hs ├── pattern │ └── pos │ │ ├── ANF.hs │ │ ├── Contra0.hs │ │ ├── Invariants.hs │ │ ├── Monad0.hs │ │ ├── Monad1.hs │ │ ├── Monad7.hs │ │ ├── MultipleInvariants.hs │ │ ├── Return00.hs │ │ ├── Return01.hs │ │ ├── ReturnStrata00.hs │ │ ├── TemplateHaskell.hs │ │ └── TemplateHaskellLib.hs ├── ple │ ├── neg │ │ ├── BinahQuery.hs │ │ ├── BinahUpdate.hs │ │ ├── BinahUpdateClient.hs │ │ ├── BinahUpdateLib.hs │ │ ├── BinahUpdateLib1.hs │ │ ├── ExactGADT5.hs │ │ ├── Ple0.hs │ │ ├── Ple_sum.hs │ │ ├── ReflectDefault.hs │ │ ├── T1173.hs │ │ ├── T1192.hs │ │ ├── T1289.hs │ │ ├── T1371_Tick.hs │ │ ├── T1409.hs │ │ └── T1424.hs │ └── pos │ │ ├── BinahQuery.hs │ │ ├── BinahUpdate.hs │ │ ├── CCDep.hs │ │ ├── Compiler.hs │ │ ├── ExactGADT4.hs │ │ ├── ExactGADT5.hs │ │ ├── ExactGADT7.hs │ │ ├── FilterPLE.hs │ │ ├── Fulcrum.hs │ │ ├── FuseMap.hs │ │ ├── FuseMapLam.hs │ │ ├── IndLast.hs │ │ ├── IndPal0.hs │ │ ├── IndPal00.hs │ │ ├── IndPalindrome.hs │ │ ├── IndPerm.hs │ │ ├── IndStar.hs │ │ ├── IndStarHole.hs │ │ ├── Isort_erase.hs │ │ ├── ListAnd.hs │ │ ├── ListPolySet.hs │ │ ├── Lists.hs │ │ ├── MJFix.hs │ │ ├── MergeSort.hs │ │ ├── MonadCont.hs │ │ ├── MonadList.hs │ │ ├── MonadReader.hs │ │ ├── MonadState.hs │ │ ├── MossakaBug.hs │ │ ├── NNFPiotr.hs │ │ ├── NegNormalForm.hs │ │ ├── PadLeft.hs │ │ ├── Permutations.hs │ │ ├── Ple0.hs │ │ ├── PleORM.hs │ │ ├── Ple_sum.hs │ │ ├── PolySetBar.hs │ │ ├── PolySetFoo.hs │ │ ├── ProposalLocalRewrites.hs │ │ ├── ReaderEta.hs │ │ ├── ReflectDefault.hs │ │ ├── RegexpDerivative.hs │ │ ├── RosePLEDiv.hs │ │ ├── SKIDC.hs │ │ ├── SKIEta.hs │ │ ├── SKILam.hs │ │ ├── STLC0.hs │ │ ├── STLC1.hs │ │ ├── STLC2.hs │ │ ├── STLCB0.hs │ │ ├── STLCB1.hs │ │ ├── StackCompiler.hs │ │ ├── StlcBug.hs │ │ ├── T1173.hs │ │ ├── T1190.hs │ │ ├── T1257.hs │ │ ├── T1289.hs │ │ ├── T1302b.hs │ │ ├── T1371.hs │ │ ├── T1371_NNF.hs │ │ ├── T1382.hs │ │ ├── T1409.hs │ │ ├── T1424.hs │ │ ├── T1424A.hs │ │ ├── Tmp.hs │ │ └── Tmp1.hs ├── pos │ ├── AVL.hs │ ├── AVLRJ.hs │ ├── Abs.hs │ ├── AbsPosTest.hs │ ├── Absref_crash.hs │ ├── Absref_crash0.hs │ ├── Ackermann.hs │ ├── Adt0.hs │ ├── AdtList0.hs │ ├── AdtList1.hs │ ├── AdtList2.hs │ ├── AdtList3.hs │ ├── AdtList4.hs │ ├── AdtList5.hs │ ├── AdtPeano0.hs │ ├── AdtPeano1.hs │ ├── Alias00.hs │ ├── Alias01.hs │ ├── AllowUnsafeCtor.hs │ ├── Alphaconvert_List.hs │ ├── Alphaconvert_Set.hs │ ├── AmortizedQueue.hs │ ├── Anfbug.hs │ ├── Anftest.hs │ ├── Anish1.hs │ ├── Assume.hs │ ├── AssumedRecursive.hs │ ├── AutoSize.hs │ ├── AutoTerm.hs │ ├── AutoTerm1.hs │ ├── Automate.hs │ ├── Avg.hs │ ├── BST.hs │ ├── BST000.hs │ ├── Bag1.hs │ ├── BangPatterns.hs │ ├── BinarySearch.hs │ ├── BinarySearchOverflow.hs │ ├── Books.hs │ ├── Bool0.hs │ ├── Bool1.hs │ ├── Bool2.hs │ ├── Bounds1.hs │ ├── Case_lambda_join.hs │ ├── CasesToLogic.hs │ ├── Cat.hs │ ├── CharLiterals.hs │ ├── CheckedNum.hs │ ├── CheckedNumLib.hs │ ├── Chunks.hs │ ├── Class.hs │ ├── Class2.hs │ ├── ClassReg.hs │ ├── Client521.hs │ ├── ClojurVector.hs │ ├── Cmptag0.hs │ ├── Coercion.hs │ ├── Coercion1.hs │ ├── Comma.hs │ ├── CommentedOut.hs │ ├── Compare.hs │ ├── Compare1.hs │ ├── Compare2.hs │ ├── CompareConstraints.hs │ ├── Comprehension.hs │ ├── ComprehensionTerm.hs │ ├── Constraints.hs │ ├── ConstraintsAppend.hs │ ├── Coretologic.hs │ ├── CosPosTest.hs │ ├── CountMonad.hs │ ├── Csgordon_issue_296.hs │ ├── Cut00.hs │ ├── DB00.hs │ ├── Data2.hs │ ├── DataBase.hs │ ├── DataConQuals.hs │ ├── Datacon0.hs │ ├── Datacon1.hs │ ├── Datacon_inv.hs │ ├── Deepmeas0.hs │ ├── DepData.hs │ ├── DepTriples.hs │ ├── DependentPairs.hs │ ├── DependentPairsFun.hs │ ├── Deptup.hs │ ├── Deptup1.hs │ ├── Deptup1.pred │ ├── Deptup3.hs │ ├── DeptupW.hs │ ├── Div000.hs │ ├── Dropwhile.hs │ ├── Duplicate_bind.hs │ ├── Elements.hs │ ├── Elems.hs │ ├── Elim00.hs │ ├── Elim01.hs │ ├── Elim_ex_compose.hs │ ├── Elim_ex_let.hs │ ├── Elim_ex_list.hs │ ├── Elim_ex_map_1.hs │ ├── Elim_ex_map_2.hs │ ├── Elim_ex_map_3.hs │ ├── Eq_poly_measure.hs │ ├── Eqelems.hs │ ├── Eval.hs │ ├── EvalQuery.hs │ ├── Even.hs │ ├── Even0.hs │ ├── Ex0.hs │ ├── Ex01.hs │ ├── Ex1.hs │ ├── ExactADT6.hs │ ├── ExactGADT.hs │ ├── ExactGADT0.hs │ ├── ExactGADT1.hs │ ├── ExactGADT2.hs │ ├── ExactGADT6.hs │ ├── Exp0.hs │ ├── ExpPosTest.hs │ ├── ExponentialPosTest.hs │ ├── ExponentiationPosTest.hs │ ├── Extype.hs │ ├── FFI.hs │ ├── Fail.hs │ ├── FailName.hs │ ├── FancyMutualTerm.hs │ ├── FancyTerm.hs │ ├── Fib0.hs │ ├── FibEq.hs │ ├── FilterAbs.hs │ ├── FingerTree.hs │ ├── FoldN.hs │ ├── Foldl.hs │ ├── Foldr.hs │ ├── Foo.hs │ ├── For.hs │ ├── Forloop.hs │ ├── Fractional.hs │ ├── FractionalInstance.hs │ ├── GCD.hs │ ├── GadtEval.hs │ ├── GeneralizedTermination.hs │ ├── GhcSort1.hs │ ├── GhcSort2.hs │ ├── GhcSort3.hs │ ├── GhcSort3_T.hs │ ├── Gimme.hs │ ├── Go.hs │ ├── Go_ugly_type.hs │ ├── GoodHMeas.hs │ ├── Graph.hs │ ├── Grty0.hs │ ├── Grty1.hs │ ├── Grty2.hs │ ├── Grty3.hs │ ├── GuardedNegative.hs │ ├── HasElem.hs │ ├── HaskellMeasure.hs │ ├── HedgeUnion.hs │ ├── Hello.hs │ ├── Hex00.hs │ ├── HigherOrderRecFun.hs │ ├── Hole00.hs │ ├── Hole_app.hs │ ├── Hole_fun.hs │ ├── Holes.hs │ ├── Holes_Slicing.hs │ ├── Hutton.hs │ ├── IcfpDemo.hs │ ├── IdNat.hs │ ├── IdNat0.hs │ ├── Ignores.hs │ ├── Imp0.hs │ ├── Implies.hs │ ├── Infinity.hs │ ├── Infix.hs │ ├── Inline.hs │ ├── Inline1.hs │ ├── Invlhs.hs │ ├── Ite.hs │ ├── Ite1.hs │ ├── Jeff.hs │ ├── KMeansHelper.hs │ ├── Keys.hs │ ├── Kmp.hs │ ├── KmpIO.hs │ ├── KmpVec.hs │ ├── LNot.hs │ ├── LambdaDeBruijn.hs │ ├── LambdaEval.hs │ ├── LambdaEvalMini.hs │ ├── LambdaEvalSuperTiny.hs │ ├── LambdaEvalTiny.hs │ ├── LazyWhere.hs │ ├── LazyWhere1.hs │ ├── Lets.hs │ ├── Lex.hs │ ├── Lib521.hs │ ├── ListAnf.hs │ ├── ListConcat.hs │ ├── ListElem.hs │ ├── ListISort_bag.hs │ ├── ListISort_perm.hs │ ├── ListKeys.hs │ ├── ListLen.hs │ ├── ListLen_LType.hs │ ├── ListMSort.hs │ ├── ListMSort_LType.hs │ ├── ListQSort_LType.hs │ ├── ListRange.hs │ ├── ListRange_LType.hs │ ├── ListReverse_LType.hs │ ├── ListSet.hs │ ├── ListSetDemo.hs │ ├── ListSort.hs │ ├── Listqual.hs │ ├── Lit.hs │ ├── Lit00.hs │ ├── Lit02.hs │ ├── LocalHole.hs │ ├── LocalLazy.hs │ ├── LocalSpec.hs │ ├── LocalSpecLib.hs │ ├── LogPosTest.hs │ ├── LogicCurry1.hs │ ├── Loo.hs │ ├── LooLib.hs │ ├── LooLibLib.hs │ ├── Malformed0.hs │ ├── Map.hs │ ├── Map0.hs │ ├── Map2.hs │ ├── MapFusion.hs │ ├── MapReduceVerified.hs │ ├── MapTvCrash.hs │ ├── Mapreduce_bare.hs │ ├── Maps.hs │ ├── Maps1.hs │ ├── MaskError.hs │ ├── Maybe.hs │ ├── Maybe0.hs │ ├── Maybe000.hs │ ├── Maybe1.hs │ ├── Maybe2.hs │ ├── Maybe3.hs │ ├── Maybe4.hs │ ├── Maybe5.hs │ ├── Meas0.hs │ ├── Meas00.hs │ ├── Meas00a.hs │ ├── Meas0a.hs │ ├── Meas1.hs │ ├── Meas10.hs │ ├── Meas11.hs │ ├── Meas12.hs │ ├── Meas2.hs │ ├── Meas4.hs │ ├── Meas5.hs │ ├── Meas6.hs │ ├── Meas7.hs │ ├── Meas8.hs │ ├── Meas9.hs │ ├── MeasureContains.hs │ ├── MeasureDups.hs │ ├── MeasureSets.hs │ ├── Measures.hs │ ├── Measures1.hs │ ├── Merge1.hs │ ├── MergeSort.hs │ ├── MergeSort_bag.hs │ ├── Mod.hs │ ├── ModLib.hs │ ├── ModTest.hs │ ├── Monad2.hs │ ├── Monad5.hs │ ├── Monad6.hs │ ├── Multi_pred_app_00.hs │ ├── Mutrec.hs │ ├── MutualRec.hs │ ├── MutuallyDependentADT.hs │ ├── MyBag.hs │ ├── MyBagDefine.hs │ ├── Nats.hs │ ├── Niki.hs │ ├── Niki1.hs │ ├── NoCaseExpand.hs │ ├── NoExhaustiveGuardsError.hs │ ├── NoPositivityCheck.hs │ ├── Null.hs │ ├── NumRefl.hs │ ├── NumRefl1.hs │ ├── ORM.hs │ ├── OrdList.hs │ ├── Pair.hs │ ├── Pair0.hs │ ├── Pair00.hs │ ├── PairMeasure.hs │ ├── PairMeasure0.hs │ ├── Pargs.hs │ ├── Pargs1.hs │ ├── Partial_tycon.hs │ ├── Partialmeasure.hs │ ├── Permutation.hs │ ├── PersistentVector.hs │ ├── Ple1.hs │ ├── PointDist.hs │ ├── Poly0.hs │ ├── Poly1.hs │ ├── Poly2.hs │ ├── Poly2_degenerate.hs │ ├── Poly3.hs │ ├── Poly3a.hs │ ├── Poly4.hs │ ├── PolyBag.hs │ ├── PolySet.hs │ ├── Polyfun.hs │ ├── Polyqual.hs │ ├── PositivityCheck.hs │ ├── Poslist.hs │ ├── Poslist_dc.hs │ ├── Pragma0.hs │ ├── Pred.hs │ ├── PrimInt0.hs │ ├── Product.hs │ ├── Profcrasher.hs │ ├── PromotedDataCons.hs │ ├── Propability.hs │ ├── Propmeasure.hs │ ├── Propmeasure1.hs │ ├── QQTySig.hs │ ├── QQTySigTyVars.hs │ ├── QQTySyn.hs │ ├── QualTest.hs │ ├── RBTree.hs │ ├── RBTree_col_height.hs │ ├── RBTree_color.hs │ ├── RBTree_height.hs │ ├── RBTree_ord.hs │ ├── Range.hs │ ├── Range1.hs │ ├── RangeAdt.hs │ ├── ReWrite.hs │ ├── ReWrite10.hs │ ├── ReWrite2.hs │ ├── ReWrite3.hs │ ├── ReWrite4.hs │ ├── ReWrite5.hs │ ├── ReWrite6.hs │ ├── ReWrite7.hs │ ├── ReWrite8.hs │ ├── ReWrite9.hs │ ├── RealProps.hs │ ├── Rebind.hs │ ├── RecQSort.hs │ ├── RecQSort0.hs │ ├── RecSelector.hs │ ├── Rec_annot_go.hs │ ├── Record0.hs │ ├── Record1.hs │ ├── RecordSelectorError.hs │ ├── Recursion0.hs │ ├── Reduction.hs │ ├── RefinedADTs.hs │ ├── Reflect0.hs │ ├── ReflectAlias.hs │ ├── ReflectBooleanFunctions.hs │ ├── ReflectMutual.hs │ ├── RelativeComplete.hs │ ├── Repeat.hs │ ├── RepeatHigherOrder.hs │ ├── Resolve.hs │ ├── ResolveA.hs │ ├── ResolveALib.hs │ ├── ResolveB.hs │ ├── ResolveBLib.hs │ ├── ResolvePred.hs │ ├── Rest.hs │ ├── Risers.hs │ ├── Rta.hs │ ├── SafePartialFunctions.hs │ ├── Scanr.hs │ ├── SelfList.hs │ ├── SimplerNotation.hs │ ├── SimplifyTup00.hs │ ├── SinPosTest.hs │ ├── SingletonLists.hs │ ├── Solver.hs │ ├── Spec0.hs │ ├── SqrtPosTest.hs │ ├── StackClass.hs │ ├── StackMachine.hs │ ├── Stacks0.hs │ ├── State.hquals │ ├── State.hs │ ├── State00.hs │ ├── StateConstraints.hs │ ├── StateConstraints0.hs │ ├── StateConstraints00.hs │ ├── StateF00.hs │ ├── StateInvarint.hs │ ├── StateLib.hs │ ├── Streams.hs │ ├── StrictPair0.hs │ ├── StrictPair1.hs │ ├── String00.hs │ ├── StringLit.hs │ ├── Strings.hs │ ├── StructRec.hs │ ├── Sum.hs │ ├── T1013.hs │ ├── T1013A.hs │ ├── T1024.hs │ ├── T1025.hs │ ├── T1025a.hs │ ├── T1034.hs │ ├── T1045.hs │ ├── T1045.hs-boot │ ├── T1045a.hs │ ├── T1045aLib.hs │ ├── T1060.hs │ ├── T1065.hs │ ├── T1074.hs │ ├── T1085.hs │ ├── T1092.hs │ ├── T1095A.hs │ ├── T1095B.hs │ ├── T1095C.hs │ ├── T1100.hs │ ├── T1120A.hs │ ├── T1126.hs │ ├── T1126a.hs │ ├── T1198_1.hs │ ├── T1198_2.hs │ ├── T1198_3.hs │ ├── T1198_4.hs │ ├── T1220.hs │ ├── T1223.hs │ ├── T1267.hs │ ├── T1278.hs │ ├── T1278_2.hs │ ├── T1278_3.hs │ ├── T1286.hs │ ├── T1288.hs │ ├── T1289a.hs │ ├── T1302.hs │ ├── T1336.hs │ ├── T1363.hs │ ├── T1461.hs │ ├── T1498.hs │ ├── T1543.hs │ ├── T1544.hs │ ├── T1547.hs │ ├── T1548.hs │ ├── T1550.hs │ ├── T1555.hs │ ├── T1556.hs │ ├── T1560.hs │ ├── T1560B.hs │ ├── T1567.hs │ ├── T1568.hs │ ├── T1571.hs │ ├── T1577.hs │ ├── T1593.hs │ ├── T1595.hs │ ├── T1597.hs │ ├── T1603.hs │ ├── T1633.hs │ ├── T1634.hs │ ├── T1636.hs │ ├── T1642.hs │ ├── T1642A.hs │ ├── T1647.hs │ ├── T1649MeasuresDef.hs │ ├── T1649WorkTypes.hs │ ├── T1657.hs │ ├── T1660.hs │ ├── T1669.hs │ ├── T1670A.hs │ ├── T1670B.hs │ ├── T1697.hs │ ├── T1697A.hs │ ├── T1697C.hs │ ├── T1708.hs │ ├── T1709.hs │ ├── T1749.hs │ ├── T1761.hs │ ├── T1775.hs │ ├── T1812.hs │ ├── T1874.hs │ ├── T2091.hs │ ├── T2093.hs │ ├── T2096.hs │ ├── T2235.hs │ ├── T2237.hs │ ├── T2404.hs │ ├── T2535.hs │ ├── T2535A.hs │ ├── T385.hs │ ├── T531.hs │ ├── T595.hs │ ├── T595a.hs │ ├── T598.hs │ ├── T716.hs │ ├── T819.hs │ ├── T819A.hs │ ├── T820.hs │ ├── T866.hs │ ├── T914.hs │ ├── TagBinder.hs │ ├── Take.hs │ ├── Term.hs │ ├── Term0.hs │ ├── Termination.hs │ ├── TerminationNum.hs │ ├── TerminationNum0.hs │ ├── Test0.hs │ ├── Test00.hs │ ├── Test000.hs │ ├── Test00_int.hs │ ├── Test00_old.hs │ ├── Test00b.hs │ ├── Test00c.hs │ ├── Test1.hs │ ├── Test2.hs │ ├── Test761.hs │ ├── TestRec.hs │ ├── TokenType.hs │ ├── Top0.hs │ ├── TopLevel.hs │ ├── ToyMVar.hs │ ├── Trans.hs │ ├── TransTAG.hs │ ├── Transpose.hs │ ├── Tup0.hs │ ├── Tupparse.hs │ ├── TyExpr.hs │ ├── Tyclass0.hs │ ├── Tyfam0.hs │ ├── TypeAlias.hs │ ├── TypeLitNat.hs │ ├── TypeLitString.hs │ ├── Tyvar.hs │ ├── UnboxedTuples.hs │ ├── UnboxedTuplesAndTH.hs │ ├── UndecidedGuards.hs │ ├── Unusedtyvars.hs │ ├── Variance.hs │ ├── Variance2.hs │ ├── Vector00.hs │ ├── Vector1.hs │ ├── Vector1a.hs │ ├── Vector1b.hs │ ├── Vector2.hs │ ├── VerifiedNum.hs │ ├── WBL.hs │ ├── WBL0.hs │ ├── WhyLH.hs │ ├── Words.hs │ ├── Words1.hs │ ├── Wrap0.hs │ ├── Wrap1.hs │ ├── WrapUnWrap.hs │ ├── ZipSO.hs │ ├── ZipW.hs │ ├── ZipW1.hs │ ├── ZipW2.hs │ ├── Zipper.hs │ ├── Zipper0.hs │ ├── Zipper000.hs │ ├── listSet.hquals │ └── test000.hs.hquals ├── refined-classes │ ├── semigroup.hs │ ├── semigroup_desugared.hs │ └── semigroup_unsound.hs ├── reflect │ ├── neg │ │ ├── DoubleLit.hs │ │ ├── ReflString0.hs │ │ └── ReflString1.hs │ └── pos │ │ ├── DoubleLit.hs │ │ ├── QuotRemInt.hs │ │ ├── ReflString0.hs │ │ ├── ReflString1.hs │ │ └── T2405.hs ├── relational │ ├── neg │ │ ├── Abs.hs │ │ ├── ApSum.hs │ │ ├── ApSumAsync.hs │ │ ├── Axiom.hs │ │ ├── CaseOnRec.hs │ │ ├── CheckedImp.hs │ │ └── SndOrdPred.hs │ ├── pos │ │ ├── Abs.hs │ │ ├── AsynchCase.hs │ │ ├── Axiom.hs │ │ ├── CheckedImp.hs │ │ ├── Isort.hs │ │ ├── MapFusion.hs │ │ ├── MutRec.hs │ │ └── SndOrdPredNonRel.hs │ └── rtest ├── spec │ ├── neg │ │ └── Compose1.hs │ └── pos │ │ ├── BS1.hs │ │ ├── Compose.hs │ │ └── Compose1.hs ├── stack_driver │ └── driver.hs ├── strings │ ├── neg │ │ └── StringIndexingStep1.hs │ ├── pos │ │ ├── DivideAndQunquer.hs │ │ ├── ProvesLib.hs │ │ ├── StringIndexing.hs │ │ ├── StringIndexingStep1.hs │ │ ├── StringIndexingStep2.hs │ │ ├── StringIndexingStep3.hs │ │ └── StringLib.hs │ └── todo │ │ ├── Boyer_Moore.hs │ │ └── StringIndexing.hs ├── tasty │ ├── ErrorFilterReportTests.hs │ └── Main.hs ├── terminate │ ├── neg │ │ ├── AutoTerm.hs │ │ ├── Div.hs │ │ ├── Even.hs │ │ ├── Qsloop.hs │ │ ├── Rename.hs │ │ ├── Sum.hs │ │ ├── T1404_0.hs │ │ ├── T1404_1.hs │ │ ├── T1404_2.hs │ │ ├── T1404_3.hs │ │ ├── T745.hs │ │ ├── Term00.hs │ │ ├── TestRec.hs │ │ ├── Total00.hs │ │ ├── Total01.hs │ │ └── Total02.hs │ └── pos │ │ ├── Ackermann.hs │ │ ├── AutoTerm.hs │ │ ├── Div.hs │ │ ├── Lexicographic.hs │ │ ├── List00.hs │ │ ├── List00_local.hs │ │ ├── List00_str.hs │ │ ├── List01.hs │ │ ├── List02.hs │ │ ├── List03.hs │ │ ├── List04.hs │ │ ├── List04_local.hs │ │ ├── List05_local.hs │ │ ├── LocalTermExpr.hs │ │ ├── StructSecondArg.hs │ │ ├── Sum.hs │ │ ├── T1245.hs │ │ ├── T1396_0.hs │ │ ├── T1396_1.hs │ │ ├── T1403.hs │ │ └── Term00.hs ├── tests.cabal ├── tmp │ ├── Class2.hs │ ├── Class3.hs │ ├── LiquidR.hs │ ├── LiquidR2.hs │ ├── Mode.hs │ ├── T776.hs │ └── T777.hs ├── todo-rebare │ ├── DataKinds.hs │ ├── Inst01_UNSAFE.hs │ ├── NatClass.hs │ ├── Strata.hs │ ├── T1089b.hs │ ├── VerifiedMonoid_NEG.hs │ └── VerifiedMonoid_POS.hs ├── todo │ ├── 12-case-study-AVL.lhs │ ├── 2013-01-10-measuring-lists-I.lhs │ ├── AALib.hs │ ├── AVLTree.hs │ ├── AbsRef.hs │ ├── AbsRefNameClash.hs │ ├── Adt0.hs │ ├── AdtBin.hs │ ├── Aliases.hs │ ├── AmortizedQueue.hs │ ├── Append.hs │ ├── Append0.hs │ ├── ApplicativeMaybe0.hs │ ├── ApplicativeMaybe1.hs │ ├── Ast.hs │ ├── AxiomBug.hs │ ├── AxiomatizeLib.hs │ ├── BadArguments.hs │ ├── Box.hs │ ├── Braun.hs │ ├── CatMaybes.hs │ ├── CheckProofs.hs │ ├── Class1.hs │ ├── Class2.hs │ ├── Class3.hs │ ├── Class4Import.hs │ ├── Class4Lib.hs │ ├── ClassMeasureBAD.hs │ ├── ClassMeasureIdeal.hs │ ├── ClassMeasureOK.hs │ ├── ClassReflect.hs │ ├── CmpBug.hs │ ├── CountMonadMap.hs │ ├── DB0.hs │ ├── DBMovies0.hs │ ├── DerivingRead.hs │ ├── DiffCheck.hs │ ├── Eff0.hs │ ├── Eff1.hs │ ├── Eff2.hs │ ├── EffSTTLib.hs │ ├── Ensure.hs │ ├── EnumFromTo.hs │ ├── EquationalLib.hs │ ├── ExactGADT3.hs │ ├── ExactGADT5.hs │ ├── ExactGADT6.hs │ ├── FixCrash.hs │ ├── FldBug.hs │ ├── GhcListSort.hs │ ├── ImportBoundLib.hs │ ├── ImportReflected.hs │ ├── ImportedNumericInstances.hs │ ├── IncrLib.hs │ ├── InfiniteLists.hs │ ├── InfixClient.hs │ ├── InfixLib.hs │ ├── InlineMeasure.hs │ ├── IntInvariants.hs │ ├── Interpreter.hs │ ├── Intervals.hs │ ├── InvBug.hs │ ├── Invariants.hs │ ├── Invariants1.hs │ ├── Invariants2.hs │ ├── InvariantsTermination.hs │ ├── LambdaDeBruijn.hs │ ├── LambdaDeBruijn0.hs │ ├── LazyVar.hs │ ├── LetRecStack.hs │ ├── ListDataCons-Neg.hs │ ├── ListDataCons-Pos.hs │ ├── ListDataCons.hs │ ├── ListMem.hs │ ├── LocalRecursiveFuns.hs │ ├── LocalSpec1.hs │ ├── LocalSpecImport.hs │ ├── LocalSpecLib.hs │ ├── LocalSpecTyVar.hs │ ├── LocalTermExpr1.hs │ ├── Machine.hs │ ├── Map-strict.hs │ ├── Map-wierd.hs │ ├── MaybeReflect0Lib.hs │ ├── MaybeReflect1Lib.hs │ ├── Means.hs │ ├── Measure.hs │ ├── MeasureImport.hs │ ├── MissingAbsRefArgs.hs │ ├── NameClash.hs │ ├── NativeFixCrash.hs │ ├── NeuralNetwork.hs │ ├── NewType00.hs │ ├── NoInlines.hs │ ├── NoInstance.hs │ ├── NotesOnProductivityTest.hs │ ├── Parse.hs │ ├── Parse1.hs │ ├── PartialAbsApplication.hs │ ├── Plus.hs │ ├── PositivityCases.hs │ ├── QualifCheck.hs │ ├── RG.hs │ ├── Recursion.hs │ ├── Recursion1.hs │ ├── RedBlack.hs │ ├── RefinedData.hs │ ├── RefinedEquality.hs │ ├── ReflImp.hs │ ├── RegexpDerivative.hs │ ├── SMTDiverge.hs │ ├── SS.hs │ ├── SYB_Literals.hs │ ├── SearchTree.hs │ ├── SelfRefPredicates.hs │ ├── Signal.hs │ ├── SortedLists.lhs │ ├── StateConstraints.hs │ ├── Strings.hs │ ├── SubType.hs │ ├── SuperClassBounds.hs │ ├── T1037A.hs │ ├── T1037B.hs │ ├── T1037C.hs │ ├── T1089.hs │ ├── T1094_Lib.hs │ ├── T1109.hs │ ├── T1189.hs │ ├── T1278.1.hs │ ├── T1326A.hs │ ├── T1326B.hs │ ├── T1326C.hs │ ├── T1481.hs │ ├── T1549.hs │ ├── T1551.hs │ ├── T1555.hs │ ├── T1649.hs │ ├── T2076.hs │ ├── T658.hs │ ├── T765.hs │ ├── T770.hs │ ├── T771.hs │ ├── T772.hs │ ├── T776.hs │ ├── T781.hs │ ├── T791.hs │ ├── T791a.hs │ ├── T870.hs │ ├── T995.hs │ ├── T996.hs │ ├── T997.hs │ ├── T997a.hs │ ├── Theorems0.hs │ ├── Times.hs │ ├── TreeMap.hs │ ├── TreeMap0.hs │ ├── TypeError.hs │ ├── TypeFun.hs │ ├── TypeSynonyms.hs │ ├── UnboundSigs.hs │ ├── UnboundVarInAssume1.hs │ ├── UnfoldDataCons.hs │ ├── Unsound.hs │ ├── UnsoundMeasure.hs │ ├── Until.hs │ ├── UseBound.hs │ ├── VerifiedNum.hs │ ├── WBL-crash.hs │ ├── When.hs │ ├── absref-crash0.hs │ ├── aliasConst.hs │ ├── aliasError.hs │ ├── appCheck.hs │ ├── apply.hs │ ├── baderror.hs │ ├── baffled.hs │ ├── binsearch.hs │ ├── boolparse.hs │ ├── cases.hs │ ├── cont.hs │ ├── contra.hs │ ├── decr.hs │ ├── doubleError.hs │ ├── dyn.hs │ ├── empty-or.hs │ ├── err0.hs │ ├── err1.hs │ ├── err10.hs │ ├── err11.hs │ ├── err12.hs │ ├── err13.hs │ ├── err2.hs │ ├── err3.hs │ ├── err4.hs │ ├── err5.hs │ ├── err6.hs │ ├── err7.hs │ ├── err8.hs │ ├── err9.hs │ ├── existsAbs.hs │ ├── false.hs │ ├── fft.hs │ ├── fio.hs │ ├── fixme.lhs │ ├── funrec.hs │ ├── gadtEval.hs │ ├── if.hs │ ├── inccheck0.hs │ ├── intP.hs │ ├── kmpMonad.hs │ ├── liftbug.hs │ ├── linspace-crash.hs │ ├── linspace.hs │ ├── list-screen.hs │ ├── lit01.hs │ ├── mapreduce.hs │ ├── maps.hs │ ├── maybe0.hs │ ├── maybe0000.hs │ ├── maybe4.hs │ ├── measbug.hs │ ├── measfield.hs │ ├── overload.hs │ ├── partialmeasureOld.hs │ ├── ptr.hs │ ├── ptr2.hs │ ├── ptr3.hs │ ├── read.hs │ ├── satsolver.hs │ ├── satsolver0.hs │ ├── splash-total.hs │ ├── splash-vector.hs │ ├── stacks1.hs │ ├── state.hs │ ├── tdb.hs │ ├── trans.lhs │ ├── tupleplus.hs │ ├── txrec0.hs │ └── vector2.hs └── typeclasses │ └── pos │ ├── All.hs │ ├── Lemma.hs │ ├── Lib.hs │ ├── PNat.hs │ └── SemigroupLib.hs └── typeclass-tests ├── Data ├── All.hs ├── All │ └── Semigroup.hs ├── Any.hs ├── Any │ └── Semigroup.hs ├── Dual.hs ├── Dual │ └── Semigroup.hs ├── Either.hs ├── Either │ └── Functor.hs ├── Endo.hs ├── Endo │ └── Semigroup.hs ├── Foldable │ └── Classes.hs ├── Function.hs ├── Functor.hs ├── Functor │ ├── Classes.hs │ ├── Const.hs │ ├── Const │ │ ├── Foldable.hs │ │ └── Functor.hs │ ├── Identity.hs │ ├── Identity │ │ ├── Foldable.hs │ │ ├── Functor.hs │ │ └── Semigroup.hs │ ├── State.hs │ └── State │ │ └── Functor.hs ├── Lattice.hs ├── List.hs ├── List │ ├── Foldable.hs │ ├── Functor.hs │ ├── NonEmpty.hs │ └── Semigroup.hs ├── Maybe.hs ├── Maybe │ ├── Foldable.hs │ ├── Functor.hs │ └── Semigroup.hs ├── Num │ └── Semigroup.hs ├── PNat.hs ├── PNat │ └── Semigroup.hs ├── Proxy.hs ├── Reader.hs ├── Reader │ └── Functor.hs ├── Semigroup │ └── Classes.hs ├── Successors.hs └── Successors │ └── Functor.hs └── Liquid └── ProofCombinators.hs /.ghci: -------------------------------------------------------------------------------- 1 | :set -isrc 2 | :set prompt "\ESC[34mλ> \ESC[m" 3 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "liquid-fixpoint"] 2 | path = liquid-fixpoint 3 | url = https://github.com/ucsd-progsys/liquid-fixpoint.git -------------------------------------------------------------------------------- /Setup.hs: -------------------------------------------------------------------------------- 1 | module Main where 2 | 3 | import Language.Haskell.Liquid.Cabal (liquidHaskellMain) 4 | 5 | main :: IO () 6 | main = liquidHaskellMain 7 | -------------------------------------------------------------------------------- /benchmark-timings/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Revision history for benchmark-timings 2 | 3 | ## 0.1.0.0 -- YYYY-mm-dd 4 | 5 | * First version. Released on an unsuspecting world. 6 | -------------------------------------------------------------------------------- /benchmarks/icfp15/README.md: -------------------------------------------------------------------------------- 1 | # Examples from _Bounded Refinement Types_ 2 | 3 | The source code of the examples from Vazou–Bakst–Jhala's ICFP'15 paper is now 4 | in [tests/benchmarks/icfp15](../../tests/benchmarks/icfp15). 5 | -------------------------------------------------------------------------------- /cleanup: -------------------------------------------------------------------------------- 1 | rm -rf **/.liquid . 2 | # find . | grep -E -e '\.(smt2|bak|json|css|md|hi|out|fqout|fq|o|err|annot|log|html|cgi|liquid)$' | xargs rm -rf 3 | -------------------------------------------------------------------------------- /docs/blog/todo/text-layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/blog/todo/text-layout.png -------------------------------------------------------------------------------- /docs/blog/todo/text-lifecycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/blog/todo/text-lifecycle.png -------------------------------------------------------------------------------- /docs/language/main.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/language/main.pdf -------------------------------------------------------------------------------- /docs/mkDocs/docs/blogposts/.pages: -------------------------------------------------------------------------------- 1 | 2 | # This file forces mkdocs-awesome-pages to show new blogposts first 3 | 4 | order: desc 5 | -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/angles.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/angles.jpg -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/ansel-adams-la-jolla.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/ansel-adams-la-jolla.jpg -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/beach.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/beach.jpg -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/dafny-leftpad-spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/dafny-leftpad-spec.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/emacs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/emacs.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/escher-helix.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/escher-helix.jpg -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/falling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/falling.jpg -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/favicon.ico -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/garter-snake.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/garter-snake.jpg -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/geisel2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/geisel2.jpg -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/hillel-tweet-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/hillel-tweet-1.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/hillel-tweet-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/hillel-tweet-2.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/ico.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/ico.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/la-jolla-shores-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/la-jolla-shores-2.jpg -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/la-jolla-shores.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/la-jolla-shores.jpg -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/leftpad-spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/leftpad-spec.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/lem_intersect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/lem_intersect.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/lem_sub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/lem_sub.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/lem_union.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/lem_union.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/logo-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/logo-header.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/logo.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/odometer-rollover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/odometer-rollover.jpg -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/out.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/plugin-emacs.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/plugin-emacs.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/plugin-ghcid.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/plugin-ghcid.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/plugin-vim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/plugin-vim.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/plugin-vscode.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/plugin-vscode.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/preloader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/preloader.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/queue-lists.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/queue-lists.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/queue-rotate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/queue-rotate.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/queue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/queue.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/regehr-tweet-quantifiers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/regehr-tweet-quantifiers.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/ribbon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/ribbon.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/sea.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/sea.jpg -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-append.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-append.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-assocpf.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-assocpf.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-assocpf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-assocpf.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-assocthm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-assocthm.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-assocthm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-assocthm.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-binarySearch-A.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-binarySearch-A.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-binarySearch-A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-binarySearch-A.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-binarySearch-B.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-binarySearch-B.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-binarySearch-B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-binarySearch-B.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-binarySearch-C.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-binarySearch-C.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-binarySearch-C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-binarySearch-C.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-binarySearch-D.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-binarySearch-D.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-binarySearch-D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-binarySearch-D.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-dotproduct.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-dotproduct.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-dotproduct.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-dotproduct.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-fib.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-fib.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-fib.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-fib.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-head.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-head.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-head.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-insertsort.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-insertsort.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-insertsort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-insertsort.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-merge.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-merge.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-merge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-merge.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-unsafetake.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-unsafetake.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-unstutter.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-unstutter.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-unstutter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-unstutter.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-ups.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-ups.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-ups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-ups.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-vectorsum.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-vectorsum.gif -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/splash-vectorsum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/splash-vectorsum.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/text-layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/text-layout.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/text-lifecycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/text-lifecycle.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/white.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/white.jpg -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/why_types_1_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/why_types_1_1.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/why_types_1_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/why_types_1_2.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/why_types_1_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/why_types_1_3.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/why_types_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/why_types_2.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/why_types_2_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/why_types_2_1.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/why_types_2_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/why_types_2_2.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/why_types_3_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/why_types_3_1.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/why_types_3_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/why_types_3_2.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/why_types_3_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/why_types_3_3.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/static/img/why_types_3_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/mkDocs/docs/static/img/why_types_3_4.png -------------------------------------------------------------------------------- /docs/mkDocs/docs/tags.html: -------------------------------------------------------------------------------- 1 | 2 | This file gets overwritten by the plugin which generates the "tags" page. 3 | It's just here as a workaround to prevent `mkdocs build -s` from complaining. 4 | -------------------------------------------------------------------------------- /docs/slides/BOS14/_support/reveal.js/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.8 4 | before_script: 5 | - npm install -g grunt-cli -------------------------------------------------------------------------------- /docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic-webfont.eot -------------------------------------------------------------------------------- /docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic-webfont.ttf -------------------------------------------------------------------------------- /docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic-webfont.woff -------------------------------------------------------------------------------- /docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic_license: -------------------------------------------------------------------------------- 1 | SIL Open Font License (OFL) 2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL 3 | -------------------------------------------------------------------------------- /docs/slides/BOS14/_support/reveal.js/test/examples/assets/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/_support/reveal.js/test/examples/assets/image1.png -------------------------------------------------------------------------------- /docs/slides/BOS14/_support/reveal.js/test/examples/assets/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/_support/reveal.js/test/examples/assets/image2.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/RedBlack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/RedBlack.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/RobertMorris.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/RobertMorris.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/bytestring.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/bytestring.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/code-spec-indiv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/code-spec-indiv.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/code-spec-total.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/code-spec-total.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/firstbug-crop.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/firstbug-crop.jpg -------------------------------------------------------------------------------- /docs/slides/BOS14/img/firstbug-crop2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/firstbug-crop2.jpg -------------------------------------------------------------------------------- /docs/slides/BOS14/img/firstbug.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/firstbug.jpg -------------------------------------------------------------------------------- /docs/slides/BOS14/img/george-orwell.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/george-orwell.jpg -------------------------------------------------------------------------------- /docs/slides/BOS14/img/gotofail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/gotofail.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/heartbleed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/heartbleed.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/minindex-classic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/minindex-classic.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/minindex-invariant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/minindex-invariant.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/minindex-modern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/minindex-modern.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/minindex-reduce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/minindex-reduce.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/overflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/overflow.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/rbtree-bad1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/rbtree-bad1.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/rbtree-bad2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/rbtree-bad2.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/rbtree-ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/rbtree-ok.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/tension0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/tension0.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/tension1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/tension1.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/tension2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/tension2.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/tension3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/tension3.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/termination-results.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/termination-results.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/thoughtcrime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/thoughtcrime.png -------------------------------------------------------------------------------- /docs/slides/BOS14/img/ungood-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/BOS14/img/ungood-small.jpg -------------------------------------------------------------------------------- /docs/slides/ETH14/_support/reveal.js/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.8 4 | before_script: 5 | - npm install -g grunt-cli -------------------------------------------------------------------------------- /docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic-webfont.eot -------------------------------------------------------------------------------- /docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic-webfont.ttf -------------------------------------------------------------------------------- /docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic-webfont.woff -------------------------------------------------------------------------------- /docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic_license: -------------------------------------------------------------------------------- 1 | SIL Open Font License (OFL) 2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL 3 | -------------------------------------------------------------------------------- /docs/slides/ETH14/_support/reveal.js/test/examples/assets/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/ETH14/_support/reveal.js/test/examples/assets/image1.png -------------------------------------------------------------------------------- /docs/slides/ETH14/_support/reveal.js/test/examples/assets/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/ETH14/_support/reveal.js/test/examples/assets/image2.png -------------------------------------------------------------------------------- /docs/slides/ETH14/cleanup: -------------------------------------------------------------------------------- 1 | find . | grep -E -e '\.(smt2|bak|json|css|md|hi|out|fqout|fq|o|err|annot|log|html|cgi|liquid)$' | xargs rm -rf 2 | -------------------------------------------------------------------------------- /docs/slides/ETH14/img/RedBlack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/ETH14/img/RedBlack.png -------------------------------------------------------------------------------- /docs/slides/ETH14/img/minindex-classic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/ETH14/img/minindex-classic.png -------------------------------------------------------------------------------- /docs/slides/ETH14/img/minindex-invariant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/ETH14/img/minindex-invariant.png -------------------------------------------------------------------------------- /docs/slides/ETH14/img/minindex-modern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/ETH14/img/minindex-modern.png -------------------------------------------------------------------------------- /docs/slides/ETH14/img/minindex-reduce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/ETH14/img/minindex-reduce.png -------------------------------------------------------------------------------- /docs/slides/ETH14/img/tension0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/ETH14/img/tension0.png -------------------------------------------------------------------------------- /docs/slides/ETH14/img/tension1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/ETH14/img/tension1.png -------------------------------------------------------------------------------- /docs/slides/ETH14/img/tension2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/ETH14/img/tension2.png -------------------------------------------------------------------------------- /docs/slides/ETH14/img/tension3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/ETH14/img/tension3.png -------------------------------------------------------------------------------- /docs/slides/IHP14/_support/.template2.reveal.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/IHP14/_support/.template2.reveal.swp -------------------------------------------------------------------------------- /docs/slides/IHP14/_support/reveal.js/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.8 4 | before_script: 5 | - npm install -g grunt-cli -------------------------------------------------------------------------------- /docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic-webfont.eot -------------------------------------------------------------------------------- /docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic-webfont.ttf -------------------------------------------------------------------------------- /docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic-webfont.woff -------------------------------------------------------------------------------- /docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic_license: -------------------------------------------------------------------------------- 1 | SIL Open Font License (OFL) 2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL 3 | -------------------------------------------------------------------------------- /docs/slides/IHP14/_support/reveal.js/test/examples/assets/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/IHP14/_support/reveal.js/test/examples/assets/image1.png -------------------------------------------------------------------------------- /docs/slides/IHP14/_support/reveal.js/test/examples/assets/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/IHP14/_support/reveal.js/test/examples/assets/image2.png -------------------------------------------------------------------------------- /docs/slides/IHP14/cleanup: -------------------------------------------------------------------------------- 1 | find . | grep -E -e '\.(smt2|bak|json|css|md|hi|out|fqout|fq|o|err|annot|log|html|cgi|liquid)$' | xargs rm -rf 2 | -------------------------------------------------------------------------------- /docs/slides/IHP14/img/RedBlack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/IHP14/img/RedBlack.png -------------------------------------------------------------------------------- /docs/slides/IHP14/img/tension0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/IHP14/img/tension0.png -------------------------------------------------------------------------------- /docs/slides/IHP14/img/tension1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/IHP14/img/tension1.png -------------------------------------------------------------------------------- /docs/slides/IHP14/img/tension2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/IHP14/img/tension2.png -------------------------------------------------------------------------------- /docs/slides/IHP14/img/tension3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/IHP14/img/tension3.png -------------------------------------------------------------------------------- /docs/slides/flops14/_support/reveal/js/.reveal.js.swo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/flops14/_support/reveal/js/.reveal.js.swo -------------------------------------------------------------------------------- /docs/slides/flops14/_support/reveal/js/.reveal.js.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/flops14/_support/reveal/js/.reveal.js.swp -------------------------------------------------------------------------------- /docs/slides/flops14/_support/reveal/js/.reveal.min.js.swo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/flops14/_support/reveal/js/.reveal.min.js.swo -------------------------------------------------------------------------------- /docs/slides/flops14/_support/reveal/js/.reveal.min.js.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/flops14/_support/reveal/js/.reveal.min.js.swp -------------------------------------------------------------------------------- /docs/slides/flops14/_support/reveal/lib/font/OpenSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/flops14/_support/reveal/lib/font/OpenSans-Regular.ttf -------------------------------------------------------------------------------- /docs/slides/flops14/_support/reveal/lib/font/PT_Sans-Narrow-Web-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/flops14/_support/reveal/lib/font/PT_Sans-Narrow-Web-Regular.ttf -------------------------------------------------------------------------------- /docs/slides/flops14/_support/reveal/lib/font/league_gothic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/flops14/_support/reveal/lib/font/league_gothic-webfont.ttf -------------------------------------------------------------------------------- /docs/slides/flops14/cleanup: -------------------------------------------------------------------------------- 1 | find . | grep -E -e '\.(smt2|bak|json|css|md|hi|out|fqout|fq|o|err|annot|log|html|cgi|liquid)$' | xargs rm -rf 2 | -------------------------------------------------------------------------------- /docs/slides/flops14/img/RedBlack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/flops14/img/RedBlack.png -------------------------------------------------------------------------------- /docs/slides/flops14/reveal.js/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .svn 3 | log/*.log 4 | tmp/** 5 | node_modules/ 6 | .sass-cache -------------------------------------------------------------------------------- /docs/slides/flops14/reveal.js/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.8 4 | before_script: 5 | - npm install -g grunt-cli -------------------------------------------------------------------------------- /docs/slides/flops14/reveal.js/lib/font/league_gothic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/flops14/reveal.js/lib/font/league_gothic-webfont.eot -------------------------------------------------------------------------------- /docs/slides/flops14/reveal.js/lib/font/league_gothic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/flops14/reveal.js/lib/font/league_gothic-webfont.ttf -------------------------------------------------------------------------------- /docs/slides/flops14/reveal.js/lib/font/league_gothic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/flops14/reveal.js/lib/font/league_gothic-webfont.woff -------------------------------------------------------------------------------- /docs/slides/flops14/reveal.js/lib/font/league_gothic_license: -------------------------------------------------------------------------------- 1 | SIL Open Font License (OFL) 2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL 3 | -------------------------------------------------------------------------------- /docs/slides/flops14/reveal.js/test/examples/assets/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/flops14/reveal.js/test/examples/assets/image1.png -------------------------------------------------------------------------------- /docs/slides/flops14/reveal.js/test/examples/assets/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/flops14/reveal.js/test/examples/assets/image2.png -------------------------------------------------------------------------------- /docs/slides/niki/fonts/PT_Mono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/niki/fonts/PT_Mono-Regular.ttf -------------------------------------------------------------------------------- /docs/slides/niki/fonts/PT_Sans-Narrow-Web-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/niki/fonts/PT_Sans-Narrow-Web-Bold.ttf -------------------------------------------------------------------------------- /docs/slides/niki/fonts/PT_Sans-Narrow-Web-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/niki/fonts/PT_Sans-Narrow-Web-Regular.ttf -------------------------------------------------------------------------------- /docs/slides/niki/fonts/PT_Sans-Web-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/niki/fonts/PT_Sans-Web-Bold.ttf -------------------------------------------------------------------------------- /docs/slides/niki/fonts/PT_Sans-Web-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/niki/fonts/PT_Sans-Web-BoldItalic.ttf -------------------------------------------------------------------------------- /docs/slides/niki/fonts/PT_Sans-Web-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/niki/fonts/PT_Sans-Web-Italic.ttf -------------------------------------------------------------------------------- /docs/slides/niki/fonts/PT_Sans-Web-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/niki/fonts/PT_Sans-Web-Regular.ttf -------------------------------------------------------------------------------- /docs/slides/niki/html/benchmarks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/niki/html/benchmarks.png -------------------------------------------------------------------------------- /docs/slides/niki/html/fonts/PT_Mono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/niki/html/fonts/PT_Mono-Regular.ttf -------------------------------------------------------------------------------- /docs/slides/niki/html/fonts/PT_Sans-Narrow-Web-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/niki/html/fonts/PT_Sans-Narrow-Web-Bold.ttf -------------------------------------------------------------------------------- /docs/slides/niki/html/fonts/PT_Sans-Narrow-Web-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/niki/html/fonts/PT_Sans-Narrow-Web-Regular.ttf -------------------------------------------------------------------------------- /docs/slides/niki/html/fonts/PT_Sans-Web-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/niki/html/fonts/PT_Sans-Web-Bold.ttf -------------------------------------------------------------------------------- /docs/slides/niki/html/fonts/PT_Sans-Web-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/niki/html/fonts/PT_Sans-Web-BoldItalic.ttf -------------------------------------------------------------------------------- /docs/slides/niki/html/fonts/PT_Sans-Web-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/niki/html/fonts/PT_Sans-Web-Italic.ttf -------------------------------------------------------------------------------- /docs/slides/niki/html/fonts/PT_Sans-Web-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/niki/html/fonts/PT_Sans-Web-Regular.ttf -------------------------------------------------------------------------------- /docs/slides/plpv14/_support/reveal/js/.reveal.js.swo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/plpv14/_support/reveal/js/.reveal.js.swo -------------------------------------------------------------------------------- /docs/slides/plpv14/_support/reveal/js/.reveal.js.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/plpv14/_support/reveal/js/.reveal.js.swp -------------------------------------------------------------------------------- /docs/slides/plpv14/_support/reveal/js/.reveal.min.js.swo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/plpv14/_support/reveal/js/.reveal.min.js.swo -------------------------------------------------------------------------------- /docs/slides/plpv14/_support/reveal/js/.reveal.min.js.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/plpv14/_support/reveal/js/.reveal.min.js.swp -------------------------------------------------------------------------------- /docs/slides/plpv14/_support/reveal/lib/font/OpenSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/plpv14/_support/reveal/lib/font/OpenSans-Regular.ttf -------------------------------------------------------------------------------- /docs/slides/plpv14/_support/reveal/lib/font/PT_Sans-Narrow-Web-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/plpv14/_support/reveal/lib/font/PT_Sans-Narrow-Web-Regular.ttf -------------------------------------------------------------------------------- /docs/slides/plpv14/_support/reveal/lib/font/league_gothic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/plpv14/_support/reveal/lib/font/league_gothic-webfont.ttf -------------------------------------------------------------------------------- /docs/slides/plpv14/lhs/.01_SimpleRefinements.lhs.swn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/plpv14/lhs/.01_SimpleRefinements.lhs.swn -------------------------------------------------------------------------------- /docs/slides/plpv14/pdcreveal.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/plpv14/pdcreveal.tgz -------------------------------------------------------------------------------- /docs/slides/plpv14/reveal.js/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .svn 3 | log/*.log 4 | tmp/** 5 | node_modules/ 6 | .sass-cache -------------------------------------------------------------------------------- /docs/slides/plpv14/reveal.js/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.8 4 | before_script: 5 | - npm install -g grunt-cli -------------------------------------------------------------------------------- /docs/slides/plpv14/reveal.js/lib/font/league_gothic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/plpv14/reveal.js/lib/font/league_gothic-webfont.eot -------------------------------------------------------------------------------- /docs/slides/plpv14/reveal.js/lib/font/league_gothic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/plpv14/reveal.js/lib/font/league_gothic-webfont.ttf -------------------------------------------------------------------------------- /docs/slides/plpv14/reveal.js/lib/font/league_gothic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/plpv14/reveal.js/lib/font/league_gothic-webfont.woff -------------------------------------------------------------------------------- /docs/slides/plpv14/reveal.js/lib/font/league_gothic_license: -------------------------------------------------------------------------------- 1 | SIL Open Font License (OFL) 2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL 3 | -------------------------------------------------------------------------------- /docs/slides/plpv14/reveal.js/test/examples/assets/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/plpv14/reveal.js/test/examples/assets/image1.png -------------------------------------------------------------------------------- /docs/slides/plpv14/reveal.js/test/examples/assets/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/docs/slides/plpv14/reveal.js/test/examples/assets/image2.png -------------------------------------------------------------------------------- /files/README.md: -------------------------------------------------------------------------------- 1 | This folder is here only to offer the `main.css` file that `ghc-timings` 2 | expects when running. `ghc-timings` is used to collect timing measures. 3 | -------------------------------------------------------------------------------- /liquid-parallel/Setup.hs: -------------------------------------------------------------------------------- 1 | module Main where 2 | 3 | import Language.Haskell.Liquid.Cabal (liquidHaskellMain) 4 | 5 | main :: IO () 6 | main = liquidHaskellMain 7 | -------------------------------------------------------------------------------- /liquid-prelude/Setup.hs: -------------------------------------------------------------------------------- 1 | module Main where 2 | 3 | import Language.Haskell.Liquid.Cabal (liquidHaskellMain) 4 | 5 | main :: IO () 6 | main = liquidHaskellMain 7 | -------------------------------------------------------------------------------- /liquid-vector/Setup.hs: -------------------------------------------------------------------------------- 1 | module Main where 2 | 3 | import Language.Haskell.Liquid.Cabal (liquidHaskellMain) 4 | 5 | main :: IO () 6 | main = liquidHaskellMain 7 | -------------------------------------------------------------------------------- /liquidhaskell-boot/src/Language/Haskell/Liquid/Types/Annotations.hs: -------------------------------------------------------------------------------- 1 | module Language.Haskell.Liquid.Types.Annotations ( 2 | ) where 3 | 4 | import Data.Data 5 | import Data.Typeable 6 | 7 | import Language.Haskell.TH.Syntax 8 | 9 | -------------------------------------------------------------------------------- /nixpkgs.nix: -------------------------------------------------------------------------------- 1 | let 2 | rev = "0cbe9f69c234a7700596e943bfae7ef27a31b735"; 3 | sha256 = "15znwycfmbdcccqgld97x6375s5j028v6zmgvvr811dbny7cgy4c"; 4 | in 5 | import (fetchTarball { 6 | inherit sha256; 7 | url = "https://github.com/NixOS/nixpkgs/archive/${rev}.tar.gz"; 8 | }) 9 | -------------------------------------------------------------------------------- /resources/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/resources/icon.png -------------------------------------------------------------------------------- /resources/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/resources/logo.png -------------------------------------------------------------------------------- /src/Data/Word_LHAssumptions.hs: -------------------------------------------------------------------------------- 1 | {-# OPTIONS_GHC -fplugin=LiquidHaskellBoot #-} 2 | module Data.Word_LHAssumptions where 3 | 4 | import GHC.Word_LHAssumptions() 5 | -------------------------------------------------------------------------------- /src/GHC/Maybe_LHAssumptions.hs: -------------------------------------------------------------------------------- 1 | {-# OPTIONS_GHC -fplugin=LiquidHaskellBoot #-} 2 | module GHC.Maybe_LHAssumptions where 3 | 4 | {-@ 5 | data Maybe a = Nothing | Just a 6 | @-} 7 | -------------------------------------------------------------------------------- /src/Liquid/Prelude/Real_LHAssumptions.hs: -------------------------------------------------------------------------------- 1 | {-# OPTIONS_GHC -fplugin=LiquidHaskellBoot #-} 2 | {-# OPTIONS_GHC -Wno-unused-imports #-} 3 | module Liquid.Prelude.Real_LHAssumptions where 4 | 5 | {-@ 6 | assume * :: Num a => x:a -> y:a -> {v:a | v = x * y} 7 | @-} 8 | -------------------------------------------------------------------------------- /src/LiquidHaskell.hs: -------------------------------------------------------------------------------- 1 | {-# OPTIONS_GHC -Wno-missing-signatures #-} 2 | module LiquidHaskell (plugin, lq) where 3 | 4 | import LiquidHaskellBoot(plugin, lq) 5 | -------------------------------------------------------------------------------- /tests/absref/pos/AbsRef00.hs: -------------------------------------------------------------------------------- 1 | 2 | -- TAG: absref 3 | 4 | module AbsRef00 where 5 | 6 | boo :: (Int, Int) 7 | boo = (10, 20) 8 | -------------------------------------------------------------------------------- /tests/absref/pos/Deppair0.hs: -------------------------------------------------------------------------------- 1 | module Deppair0 () where 2 | 3 | import Language.Haskell.Liquid.Prelude 4 | 5 | incr x = x + 1 6 | 7 | baz x = (x, incr x) 8 | 9 | prop :: Bool 10 | prop = chk $ baz n 11 | where n = choose 100 12 | 13 | chk (x, y) = liquidAssertB (x < y) 14 | -------------------------------------------------------------------------------- /tests/absref/pos/State00.hs: -------------------------------------------------------------------------------- 1 | module State00 () where 2 | 3 | data ST s = S { act :: s -> s } 4 | 5 | {-@ data ST s
Bool> = S { act :: (s
-> s
) } @-}
6 |
7 | {-@ foo :: forall s -> Bool>.
6 | xs:s -> s @-}
7 | foo :: s -> s
8 | foo s = s
9 |
--------------------------------------------------------------------------------
/tests/ffi-include/foo.c:
--------------------------------------------------------------------------------
1 | #include "foo.h"
2 | int foo(int x) {
3 | return x;
4 | }
5 |
--------------------------------------------------------------------------------
/tests/ffi-include/foo.h:
--------------------------------------------------------------------------------
1 | int foo(int);
2 |
--------------------------------------------------------------------------------
/tests/import/client/C.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--reflection" @-}
2 |
3 | module C where
4 | import Language
5 | import B
6 |
7 | {-@ getVal :: {e:Expr l st r | isEFalse e } -> {v:Int | false} @-}
8 | getVal :: Expr l st r -> Int
9 | getVal (EFalse v) = v
--------------------------------------------------------------------------------
/tests/import/client/CliAliasGen00.hs:
--------------------------------------------------------------------------------
1 | module CliAliasGen00 where
2 |
3 | import LibAliasGen00
4 |
5 | bar = foo 10
6 |
--------------------------------------------------------------------------------
/tests/import/client/CliRedBlue.hs:
--------------------------------------------------------------------------------
1 | module CliRedBlue where
2 |
3 | import LibBlue
4 | import qualified LibRedBlue as RB
5 |
6 | {-@ yumyum :: _ -> Nat @-}
7 | yumyum = RB.foo
8 |
--------------------------------------------------------------------------------
/tests/import/client/Client0.hs:
--------------------------------------------------------------------------------
1 | module Client0 where
2 |
3 | import Client1Lib
4 |
5 | a :: Eq a => B a -> Bool
6 | a (B x y) = x == y
7 |
--------------------------------------------------------------------------------
/tests/import/client/Client1Lib.hs:
--------------------------------------------------------------------------------
1 | module Client1Lib where
2 |
3 | import Client2Lib
4 |
5 | data B a = B {b1 :: a, b2 :: a }
6 | {-@ data B a = B {b1 :: a, b2 :: {v:a | cProp b1 v } } @-}
7 |
8 |
9 |
--------------------------------------------------------------------------------
/tests/import/client/Client2Lib.hs:
--------------------------------------------------------------------------------
1 | module Client2Lib where
2 |
3 | {-@ reflect cProp @-}
4 |
5 | cProp :: Eq a => a -> a -> Bool
6 | cProp x y = x == y
7 |
8 |
9 |
--------------------------------------------------------------------------------
/tests/import/client/LibRedBlue.hs:
--------------------------------------------------------------------------------
1 | module LibRedBlue where
2 |
3 | import LibRed
4 | import qualified LibBlue as Blue
5 |
6 | {-@ foo :: Thing -> Nat @-}
7 | foo :: Thing -> Int
8 | foo _ = 10
9 |
--------------------------------------------------------------------------------
/tests/import/client/NameClashClient.hs:
--------------------------------------------------------------------------------
1 | module NameClashClient where
2 |
3 | import qualified NameClashLib as Lib
4 |
5 | data Foo = FooClient Int
6 |
7 | {-@ bar :: FooAlias -> Nat @-}
8 | bar :: Lib.Foo -> Int
9 | bar _ = 20
10 |
11 | baz = Lib.foo
12 |
--------------------------------------------------------------------------------
/tests/import/client/ReflectClient1.hs:
--------------------------------------------------------------------------------
1 | module ReflectClient1 where
2 |
3 | import ReflectLib1
4 |
5 | {-@ myHead :: {v:[a] | not (isNull v) } -> a @-}
6 | myHead :: [a] -> a
7 | myHead (x:_) = x
8 |
--------------------------------------------------------------------------------
/tests/import/client/ReflectClient2.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--higherorder" @-}
2 |
3 | module ReflectClient2 where
4 |
5 | import ReflectLib2
6 |
7 | {-@ proof :: a -> { v: Int | incr 5 == 6 } @-}
8 | proof _ = incr 5
9 |
--------------------------------------------------------------------------------
/tests/import/client/T1096_Foo.hs:
--------------------------------------------------------------------------------
1 | module T1096_Foo where
2 |
3 | import T1096_TypesLib
4 |
5 | {-@ foo :: f:Foo -> Foo / [size f] @-}
6 | foo :: Foo -> Foo
7 | foo (A x) = A (foo x)
8 | foo x = x
9 |
--------------------------------------------------------------------------------
/tests/import/client/T1180.hs:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE GADTs #-}
2 |
3 | {-@ LIQUID "--exact-data-con" @-}
4 | {-@ LIQUID "--noadt" @-}
5 |
6 | module T1180 where
7 |
8 | import PeanoLib
9 |
10 | pInt :: Peano -> Int
11 | pInt Z = 0
12 | pInt (S n) = 1 + pInt n
13 |
--------------------------------------------------------------------------------
/tests/import/client/T1738.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--reflection" @-}
2 |
3 | module T1738 where
4 |
5 | import T1738Lib
6 |
7 | {-@ reflect bar @-}
8 | bar :: Int -> Int
9 | bar n = incr n
10 |
--------------------------------------------------------------------------------
/tests/import/client/T2198.hs:
--------------------------------------------------------------------------------
1 | -- Tests that annotations from GHC.Types are available
2 | -- when using the Ord class.
3 | module T2198 where
4 |
5 | g :: Int -> Bool
6 | g x = x >= 0
7 |
--------------------------------------------------------------------------------
/tests/import/client/WrapClient.hs:
--------------------------------------------------------------------------------
1 | module WrapClient where
2 |
3 | import WrapLib
4 | import WrapLibCode
5 |
6 | {-@ bar :: {v:Int | v = 2 } @-}
7 | bar = foo 1
8 |
9 |
--------------------------------------------------------------------------------
/tests/import/deps/ALib.hs:
--------------------------------------------------------------------------------
1 | module ALib where
2 |
3 | {-@ plus :: x:Int -> y:Int -> {v:Int | v = x + y} @-}
4 | plus :: Int -> Int -> Int
5 | plus x y = x + y
6 |
7 | test :: String -> (String, String)
8 | test x = ("test", x)
9 |
10 |
--------------------------------------------------------------------------------
/tests/import/deps/BLib.hs:
--------------------------------------------------------------------------------
1 | module BLib where
2 |
3 | {-@ minus :: x:Int -> y:Int -> {v:Int | v = x - y} @-}
4 | minus :: Int -> Int -> Int
5 | minus x y = x - y
6 |
7 |
--------------------------------------------------------------------------------
/tests/import/deps/CLib.hs:
--------------------------------------------------------------------------------
1 | module CLib where
2 |
3 | import ALib
4 | import BLib
5 |
6 | {-@ quux :: x:Int -> y:Int -> z:Int -> {v:Int | v = x + y - z} @-}
7 | quux :: Int -> Int -> Int -> Int
8 | quux x y z = x `plus` y `minus` z
9 |
--------------------------------------------------------------------------------
/tests/import/deps/D.hs:
--------------------------------------------------------------------------------
1 | module D where
2 |
3 | import qualified CLib
4 |
5 | {-@ gloob :: x:Nat -> Nat @-}
6 | gloob :: Int -> Int
7 | gloob x = C.quux x x x
8 |
9 |
--------------------------------------------------------------------------------
/tests/import/lib/B.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--reflection" @-}
2 | module B where
3 | import Language
4 |
5 | {-@ reflect subst @-}
6 | subst :: Expr l st r -> Expr l st r
7 | subst EUnit = EUnit
8 | subst e = e
--------------------------------------------------------------------------------
/tests/import/lib/FunClashLib.hs:
--------------------------------------------------------------------------------
1 | module FunClashLib (blob) where
2 |
3 | import FunClashLibLib
4 |
5 | {-@ blob :: Nat -> Nat @-}
6 | blob :: Int -> Int
7 | blob = incr
8 |
9 |
--------------------------------------------------------------------------------
/tests/import/lib/FunClashLibLib.hs:
--------------------------------------------------------------------------------
1 |
2 | module FunClashLibLib where
3 |
4 | {-@ incr :: Nat -> Nat @-}
5 | incr :: Int -> Int
6 | incr x = x + 1
7 |
--------------------------------------------------------------------------------
/tests/import/lib/LibBlue.hs:
--------------------------------------------------------------------------------
1 | module LibBlue where
2 |
3 | data Thing = ThingBlue Int
4 |
5 | {-@ foo :: Int -> Thing @-}
6 | foo :: Int -> Thing
7 | foo = ThingBlue
8 |
9 |
--------------------------------------------------------------------------------
/tests/import/lib/LibRed.hs:
--------------------------------------------------------------------------------
1 | module LibRed where
2 |
3 | data Thing = ThingRed Int
4 |
5 | {-@ foo :: Int -> Thing @-}
6 | foo :: Int -> Thing
7 | foo = ThingRed
8 |
9 |
--------------------------------------------------------------------------------
/tests/import/lib/NameClashLib.hs:
--------------------------------------------------------------------------------
1 | module NameClashLib where
2 |
3 | data Foo = FooLib Int
4 |
5 | {-@ type FooAlias = {v : Foo | False} @-}
6 | foo :: Foo -> Int
7 | foo _ = 10
8 |
--------------------------------------------------------------------------------
/tests/import/lib/ReExportLib.hs:
--------------------------------------------------------------------------------
1 | module ReExportLib ( module ReExportLib
2 | , module X
3 | ) where
4 |
5 |
6 | import SpecLib as X
7 |
--------------------------------------------------------------------------------
/tests/import/lib/ReflectLib0.hs:
--------------------------------------------------------------------------------
1 | module ReflectLib0 where
2 |
3 | {-@ inline gtThan @-}
4 | gtThan :: Int -> Int -> Bool
5 | gtThan x y = x > y
6 |
7 |
8 | {-@ predicate GreaterThanA X Y = X > Y @-}
9 |
--------------------------------------------------------------------------------
/tests/import/lib/ReflectLib1.hs:
--------------------------------------------------------------------------------
1 | module ReflectLib1 where
2 |
3 | {-@ measure isNull @-}
4 | isNull :: [a] -> Bool
5 | isNull [] = True
6 | isNull (x:xs) = False
7 |
--------------------------------------------------------------------------------
/tests/import/lib/ReflectLib7.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--higherorder" @-}
2 | {-@ LIQUID "--exactdc" @-}
3 |
4 | module ReflectLib7 where
5 |
6 | {-@ reflect compose @-}
7 | compose :: (b -> c) -> (a -> b) -> a -> c
8 | compose f g x = f (g x)
9 |
--------------------------------------------------------------------------------
/tests/import/lib/SpecLib.hs:
--------------------------------------------------------------------------------
1 | module SpecLib where
2 |
3 | data Foo = FooDC Int
4 | {-@ data Foo = FooDC {unfoo :: {v:Int | 0 < v }} @-}
5 |
6 | {-@ measure cfun @-}
7 | {-@ cfun :: Foo -> {v:Int | 0 < v} @-}
8 | cfun :: Foo -> Int
9 | cfun (FooDC x) = x
10 |
--------------------------------------------------------------------------------
/tests/import/lib/T1102_LibX.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--exact-data-con" @-}
2 |
3 | module T1102_LibX where
4 |
5 | import T1102_LibY
6 | -- import T1102_LibZ
7 | -- zink = fooA
8 |
9 | {-@ theorem :: x:Bar -> {bar x = bar x} @-}
10 | theorem :: Bar -> ()
11 | theorem _ = ()
12 |
--------------------------------------------------------------------------------
/tests/import/lib/T1102_LibY.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--exact-data-con" @-}
2 |
3 | module T1102_LibY where
4 |
5 | import T1102_LibZ
6 |
7 | data Bar = Bar {barFoo :: Foo Int Int}
8 |
9 | {-@ reflect bar @-}
10 | bar :: Bar -> Int
11 | bar (Bar (Foo x _)) = x
12 |
--------------------------------------------------------------------------------
/tests/import/lib/T1102_LibZ.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--exact-data-con" @-}
2 |
3 | module T1102_LibZ where
4 |
5 | {-@ data Foo a b = Foo { fooA :: a, fooB :: b} @-}
6 | data Foo a b = Foo {fooA :: a, fooB :: b}
7 |
--------------------------------------------------------------------------------
/tests/import/lib/T1112Lib.hs:
--------------------------------------------------------------------------------
1 | module T1112Lib where
2 |
3 | data Product f g p = Product (f p) (g p) deriving Eq
4 |
--------------------------------------------------------------------------------
/tests/import/lib/T1117Lib.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--higherorder" @-}
2 | {-@ LIQUID "--exactdc" @-}
3 |
4 | module T1117Lib where
5 |
6 | data U1 p = U1
7 |
8 | data Product f g p = Product (f p) (g p)
9 |
--------------------------------------------------------------------------------
/tests/import/lib/T1118Lib1.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--higherorder" @-}
2 | {-@ LIQUID "--exactdc" @-}
3 | module T1118Lib1 where
4 |
5 | import T1118Lib2
6 |
7 | {- data Product @-}
8 |
--------------------------------------------------------------------------------
/tests/import/lib/T1118Lib2.hs:
--------------------------------------------------------------------------------
1 | module T1118Lib2 where
2 |
3 | data U1 p = U1
4 | data Product f g p = Product (f p) (g p)
5 |
--------------------------------------------------------------------------------
/tests/import/lib/T1738Lib.hs:
--------------------------------------------------------------------------------
1 | module T1738Lib where
2 |
3 | {-@ inline incr @-}
4 | incr :: Int -> Int
5 | incr x = x + 1
6 |
--------------------------------------------------------------------------------
/tests/import/lib/WrapLib.hs:
--------------------------------------------------------------------------------
1 | module WrapLib ( module WrapLibCode ) where
2 |
3 | import WrapLibCode
4 |
5 | {-@ assume WrapLibCode.foo :: x:Nat -> {v:Nat | v = x + 1} @-}
6 |
7 |
--------------------------------------------------------------------------------
/tests/import/lib/WrapLibCode.hs:
--------------------------------------------------------------------------------
1 | module WrapLibCode (foo) where
2 |
3 | foo :: Int -> Int
4 | foo x = x + 1
5 |
--------------------------------------------------------------------------------
/tests/liquidhaskell-test/Main.hs:
--------------------------------------------------------------------------------
1 | module Main where
2 |
3 | import Test.Tasty
4 | import qualified QuotRem (tests)
5 |
6 | main :: IO ()
7 | main = defaultMain QuotRem.tests
8 |
--------------------------------------------------------------------------------
/tests/measure/neg/Fst02.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | -- TAG: measure
3 | -- test if the "builtin" fst and snd measures work.
4 |
5 | module Fst02 where
6 |
7 | {-@ foo :: z:_ -> {v:_ | v = snd z} @-}
8 | foo :: (a, a) -> a
9 | foo z = fst z
10 |
11 |
--------------------------------------------------------------------------------
/tests/measure/neg/Using00.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Using00 where
3 |
4 | {-@ using [a] as {v : [a] | (len v) > 0 } @-}
5 |
6 |
7 | xs = []
8 |
9 | add x xs = x:xs
10 |
11 | bar xs = head xs
12 | foo xs = tail xs
13 |
--------------------------------------------------------------------------------
/tests/measure/pos/GList000.hs:
--------------------------------------------------------------------------------
1 | -- TAG: absref
2 |
3 | module GList000 where
4 |
5 | {-@ safeHead :: {v:[a] | false } -> a @-}
6 | safeHead :: [a] -> a
7 | safeHead (x:_) = x
8 |
--------------------------------------------------------------------------------
/tests/measure/pos/HiddenData.hs:
--------------------------------------------------------------------------------
1 | module HiddenData where
2 |
3 | import HiddenDataLib (blub)
4 |
5 | {-@ foo :: Nat -> Nat @-}
6 | foo = blub
7 |
--------------------------------------------------------------------------------
/tests/measure/pos/HiddenDataLib.hs:
--------------------------------------------------------------------------------
1 | module HiddenDataLib where
2 |
3 | {-@ data Thing = Red Nat | Blue Nat @-}
4 | data Thing = Red Int | Blue Int
5 |
6 | {-@ blub :: Nat -> Nat @-}
7 | blub :: Int -> Int
8 | blub x = x + 1
9 |
--------------------------------------------------------------------------------
/tests/measure/pos/Ple00.hs:
--------------------------------------------------------------------------------
1 | -- TAG: reflect
2 |
3 | {-@ LIQUID "--reflection" @-}
4 |
5 | module Ple00 where
6 |
7 | {-@ reflect adder @-}
8 | adder :: Int -> Int -> Int
9 | adder x y = x + y
10 |
11 | {-@ prop :: { v: Int | adder 5 6 == 11 } @-}
12 | prop = adder 5 6
13 |
--------------------------------------------------------------------------------
/tests/measure/pos/Using00.hs:
--------------------------------------------------------------------------------
1 | -- tag: using
2 |
3 | module Using00 where
4 |
5 | {-@ using [a] as {v : [a] | (len v) > 0 } @-}
6 |
7 | xs = repeat 1
8 |
9 | add x xs = x:xs
10 |
11 | bar xs = head xs
12 | foo xs = tail xs
13 |
--------------------------------------------------------------------------------
/tests/name-resolution/pos/A.hs:
--------------------------------------------------------------------------------
1 | module A where
2 |
3 | data Ty = TInt
4 |
--------------------------------------------------------------------------------
/tests/name-resolution/pos/AData.hs:
--------------------------------------------------------------------------------
1 | module AData where
2 |
3 | {-@ data Dat = C1A | C2A @-}
4 | data Dat = C1A | C2A
5 |
--------------------------------------------------------------------------------
/tests/name-resolution/pos/B.hs:
--------------------------------------------------------------------------------
1 | module B where
2 |
3 | import A
4 |
5 | data Exp = Lam Ty
6 |
7 | {-@ measure measureExp @-}
8 | measureExp :: Exp -> Int
9 | measureExp _ = 10
10 |
--------------------------------------------------------------------------------
/tests/name-resolution/pos/BData.hs:
--------------------------------------------------------------------------------
1 | module BData where
2 |
3 | {-@ data Dat = C1B @-}
4 | data Dat = C1B
5 |
--------------------------------------------------------------------------------
/tests/name-resolution/pos/CData.hs:
--------------------------------------------------------------------------------
1 | {-# OPTIONS_GHC -Wno-unused-imports -Wno-missing-signatures #-}
2 | module CData where
3 |
4 | import qualified AData
5 | import qualified BData
6 |
7 | {-@ ys :: AData.Dat @-}
8 | ys = AData.C1A
9 |
--------------------------------------------------------------------------------
/tests/name-resolution/pos/MainData.hs:
--------------------------------------------------------------------------------
1 | -- | Tests that the names used in data specifications are resolved even
2 | -- when the specs are imported.
3 | module MainData where
4 |
5 | import qualified CData
6 |
7 | main :: IO ()
8 | main = return ()
9 |
--------------------------------------------------------------------------------
/tests/names/neg/DuplicatedAliases.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Multiple definitions of Type Alias" @-}
2 | module DuplicatedAliases where
3 |
4 | {-@ type Nat = {v:Int | v >= 0} @-}
5 |
--------------------------------------------------------------------------------
/tests/names/neg/Local00.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Local00 where
3 |
4 | foo = incr 10
5 | where
6 | {-@ incr :: Nat -> Nat @-}
7 | incr :: Int -> Int
8 | incr x = x - 1
9 |
--------------------------------------------------------------------------------
/tests/names/neg/Nat1.hs:
--------------------------------------------------------------------------------
1 | module Nat1 where
2 |
3 | {-@ type INat = {v:Int | v >= 0} @-}
4 |
--------------------------------------------------------------------------------
/tests/names/neg/Nat2.hs:
--------------------------------------------------------------------------------
1 | module Nat2 where
2 |
3 | import Data.Int (Int32)
4 |
5 | {-@ type INat = {v:Int32 | v >= 0}@-}
6 |
--------------------------------------------------------------------------------
/tests/names/neg/Set02.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Set02 where
3 |
4 | import Data.Set as S
5 |
6 | {-@ add :: x:a -> [a] -> {v:[a] | S.member x (listElts v)} @-}
7 | add :: a -> [a] -> [a]
8 | add apple pork = pork
9 |
--------------------------------------------------------------------------------
/tests/names/pos/List00.hs:
--------------------------------------------------------------------------------
1 | -- | The `GHC.TypeLits` seems to royally mess up name resolution.
2 |
3 | module List00 where
4 |
5 | import GHC.TypeLits
6 |
7 | {-@ zoo :: [Int] @-}
8 | zoo :: [Int]
9 | zoo = []
10 |
11 |
--------------------------------------------------------------------------------
/tests/names/pos/Local02.hs:
--------------------------------------------------------------------------------
1 | module Local02 where
2 |
3 | {-@ foo :: x:_ -> y:_ -> {v:Int | v = x + y} @-}
4 | foo :: Int -> Int -> Int
5 | foo arg0 = bar
6 | where
7 | {-@ bar :: x:_ -> {v:Int | v = x + arg0} @-}
8 | bar arg1 = arg0 + arg1
9 |
--------------------------------------------------------------------------------
/tests/names/pos/Ord.hs:
--------------------------------------------------------------------------------
1 | module Ord where
2 |
3 | {-@ bigger :: x:_ -> y:_ -> {v:_ | v >= x && v >= y} @-}
4 | bigger :: (Ord a) => a -> a -> a
5 | bigger x y | x `compare` y == GT = x
6 | | otherwise = y
7 |
--------------------------------------------------------------------------------
/tests/names/pos/Set02.hs:
--------------------------------------------------------------------------------
1 | module Set02 where
2 |
3 | import Data.Set as S
4 |
5 | {-@ add :: x:a -> [a] -> {v:[a] | S.member x (listElts v)} @-}
6 | add :: a -> [a] -> [a]
7 | add apple pork = apple : pork
8 |
--------------------------------------------------------------------------------
/tests/names/pos/Shadow01.hs:
--------------------------------------------------------------------------------
1 | -- TAG: resolve
2 | -- this tests whether we can resolve the name 'map' to the local binder, not 'GHC.Base.map'.
3 |
4 | module Shadow01 where
5 |
6 | {-@ incr :: map:Int -> {v:Int | v = map + 1} @-}
7 | incr :: Int -> Int
8 | incr x = x + 1
9 |
--------------------------------------------------------------------------------
/tests/names/pos/T1521.hs:
--------------------------------------------------------------------------------
1 | module T1521 where
2 |
3 | -- https://github.com/ucsd-progsys/liquidhaskell/issues/1521
4 |
5 | data Foo = Bool
6 |
7 | {-@ measure bar :: Int -> Bool @-}
8 |
9 | main :: IO ()
10 | main = pure ()
11 |
--------------------------------------------------------------------------------
/tests/neg/AbsNegTest.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=AbsNegTest.hs:6:1" @-}
2 | module AbsNegTest where
3 |
4 | {-@ f :: Int -> {n:Int | n < 0} @-}
5 | f :: Int -> Int
6 | f x = abs x
7 |
--------------------------------------------------------------------------------
/tests/neg/BigNum.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module BigNum where
3 |
4 | {-@ type Foo = { v : Integer | 0 <= v && v < 4611686018427387903 * 8 } @-}
5 |
6 | {-@ f :: i : Foo -> { o : Foo | i < o } @-}
7 | f :: Integer -> Integer
8 | f i = i * 2
9 |
--------------------------------------------------------------------------------
/tests/neg/CharLiterals.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | -- see #1286
3 |
4 | module CharLiterals where
5 |
6 | {-@ fails :: {v:Bool | v} @-}
7 | fails = 'a' == 'b'
8 |
9 | {-@ ok :: {v:Bool | v} @-}
10 | ok = "a" == "a"
11 |
--------------------------------------------------------------------------------
/tests/neg/CosNegTest.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=CosNegTest.hs:6:1" @-}
2 | module CosNegTest where
3 |
4 | {-@ test :: a -> {x:a | x > 1} @-}
5 | test :: Floating a => a -> a
6 | test x = cos x
7 |
--------------------------------------------------------------------------------
/tests/neg/Datacon_eq.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Datacon_eq (foo) where
3 |
4 | -- This is a blank file.
5 |
6 | data G = A | B
7 |
8 | {-@ foo :: Int -> {v:G | v = A} @-}
9 | foo :: Int -> G
10 | foo _ = B
11 |
12 |
13 |
--------------------------------------------------------------------------------
/tests/neg/ExpNegTest.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=ExpNegTest.hs:6:1" @-}
2 | module ExpNegTest where
3 |
4 | {-@ test :: a -> {x:a | x <= 0} @-}
5 | test :: Floating a => a -> a
6 | test x = exp x
7 |
--------------------------------------------------------------------------------
/tests/neg/Exponential1NegTest.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Exponential1NegTest.hs:5:1" @-}
2 | module Exponential1NegTest where
3 |
4 | ex5 :: Float -> Int -> Float
5 | ex5 x y = x ^ y
6 |
--------------------------------------------------------------------------------
/tests/neg/Exponential2NegTest.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Exponential2NegTest.hs:6:20" @-}
2 | module Exponential2NegTest where
3 |
4 | {-@ ex6 :: {n:Float | n /= 0} -> Int -> Float @-}
5 | ex6 :: Float -> Int -> Float
6 | ex6 x y = 1 / (x ^ y)
7 |
--------------------------------------------------------------------------------
/tests/neg/ExponentiationNegTest.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=ExponentiationNegTest.hs:5:1" @-}
2 | module ExponentiationNegTest where
3 |
4 | test :: Floating a => a
5 | test = 0 ** (-1)
6 |
--------------------------------------------------------------------------------
/tests/neg/Fail1.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Fail1 where
3 |
4 | -- This should fail because the failing incr is SAFE
5 | {-@ fail incr @-}
6 | {-@ incr :: x:Int -> {v:Int | x < v } @-}
7 | incr :: Int -> Int
8 | incr x = x + 1
9 |
--------------------------------------------------------------------------------
/tests/neg/FunSoundness.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module FunSoundness where
3 |
4 |
5 | {-@ deadfun :: {v:a | false} -> a @-}
6 | deadfun :: a -> a
7 | deadfun x = x
8 |
9 | bad = deadfun f
10 | where f x = x
11 |
--------------------------------------------------------------------------------
/tests/neg/Grty3.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Grty3 () where
3 |
4 |
5 | {-@ choo :: [a] -> {v: Int | v > 0 } @-}
6 | choo = poo
7 |
8 |
9 | poo :: [a] -> Int
10 | poo (x:xs) = poo xs
11 | poo [] = 0
12 |
--------------------------------------------------------------------------------
/tests/neg/Hex00.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Hex00 where
3 |
4 | {-@ foo :: {x:Int | x = 0x7} -> {y:Int | y = 0x6} -> {v:Int | v = 0xF} @-}
5 | foo :: Int -> Int -> Int
6 | foo x y = x + y
7 |
8 |
9 |
--------------------------------------------------------------------------------
/tests/neg/HigherOrder.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | {-@ LIQUID "--higherorder" @-}
3 | module HigherOrder where
4 |
5 |
6 | {-@ foo :: a: Int -> f: (Int -> Int) -> {v : Int | v = 123 + (f a) } @-}
7 | foo :: Int -> (Int -> Int) -> Int
8 | foo a f = f a
9 |
--------------------------------------------------------------------------------
/tests/neg/HolesTop.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module HolesTop where
3 |
4 | import Language.Haskell.Liquid.Prelude
5 |
6 | {-@ foo :: _ -> Bool @-}
7 | foo = liquidAssertB
8 |
9 | bar = foo True
10 |
--------------------------------------------------------------------------------
/tests/neg/ListRange.dat:
--------------------------------------------------------------------------------
1 | data List a << p:a (fld:a)>> = Nil | Cons x:a^True y:List a^p(x) << p(fld) >> --
2 |
--------------------------------------------------------------------------------
/tests/neg/Listne.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Listne where
3 |
4 | {-@ type ListNE a = {v:[a] | 0 < len v} @-}
5 |
6 | {-@ junkProp :: ListNE Int @-}
7 | junkProp :: [Int]
8 | junkProp = []
9 |
10 |
--------------------------------------------------------------------------------
/tests/neg/Lit.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Lit where
3 |
4 | {-@ test :: {v:Int | v == 30} @-}
5 | test = length "cat"
6 |
--------------------------------------------------------------------------------
/tests/neg/LogNegTest.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=LogNegTest.hs:5:1" @-}
2 | module LogNegTest where
3 |
4 | test :: Floating a => a
5 | test = log 0
6 |
--------------------------------------------------------------------------------
/tests/neg/Maybe.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Maybe where
3 |
4 | import Data.Maybe
5 |
6 |
7 | foo :: Maybe a -> a
8 | foo x = fromJust x
9 |
--------------------------------------------------------------------------------
/tests/neg/Multi_pred_app_00.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Multi_pred_app_00 () where
3 |
4 | {-@ bar :: forall < p :: Int -> Bool, q :: Int -> Bool>. Int -> Int @-}
5 | bar :: Int -> Int
6 | bar x = x
7 |
--------------------------------------------------------------------------------
/tests/neg/NestedRecursion.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module NestedRecursion (radicals) where
3 |
4 | radicals :: Int -> [a]
5 | radicals n = [ foo (radicals n) i | i <- [1..]]
6 |
7 | foo = undefined
8 |
--------------------------------------------------------------------------------
/tests/neg/NoExhaustiveGuardsError.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module NoExhaustiveGuardsError where
3 |
4 | bar :: Int -> Int -> Int
5 | bar x y | x > y = 1
6 | | x == y = 0
7 |
--------------------------------------------------------------------------------
/tests/neg/Null.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Null where
3 |
4 | foo :: [Int] -> Int
5 | foo xs = if null xs then head xs else 0
6 |
--------------------------------------------------------------------------------
/tests/neg/Pred.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Pred () where
3 |
4 | {-@ predicate Gt X Y = (X < Y) @-}
5 |
6 | {-@ incr :: x:Int -> {v:Int | Gt v x} @-}
7 | incr :: Int -> Int
8 | incr x = x + 1
9 |
--------------------------------------------------------------------------------
/tests/neg/QQTySig.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | {-# LANGUAGE QuasiQuotes #-}
3 |
4 | module QQTySig where
5 |
6 | import LiquidHaskell
7 |
8 | [lq| nats :: [{ v:Int | 0 <= v }] |]
9 | nats = [-1,0,1,2,3,4,5,6,7,8,9,10]
10 |
11 |
--------------------------------------------------------------------------------
/tests/neg/SinNegTest.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=SinNegTest.hs:6:1" @-}
2 | module SinNegTest where
3 |
4 | {-@ test :: a -> {x:a | x > 1} @-}
5 | test :: Floating a => a -> a
6 | test x = sin x
7 |
--------------------------------------------------------------------------------
/tests/neg/SqrtNegTest.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=SqrtNegTest.hs:5:1" @-}
2 | module SqrtNegTest where
3 |
4 | test :: Floating a => a
5 | test = sqrt (-3)
6 |
--------------------------------------------------------------------------------
/tests/neg/State00.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module State00 () where
3 |
4 | type State = Int
5 | data ST a b = S (a -> (a, b)) | F a
6 |
7 | {-@ fresh :: ST Int {v:Int|v>=0} @-}
8 | fresh :: ST Int Int
9 | fresh = S $ \n -> (n, n+1)
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/neg/String00.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module String00 () where
3 |
4 | import Language.Haskell.Liquid.Prelude
5 |
6 | foo = "dog"
7 |
8 | prop1 = liquidAssertB (0 == 1)
9 | prop2 = liquidAssertB (1 /= 1)
10 |
--------------------------------------------------------------------------------
/tests/neg/SumPoly.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module SumPoly where
3 |
4 | {-@ sumPoly :: forall Bool>. (Num a, Ord a) => [a ] -> a @-}
5 | sumPoly :: (Num a, Ord a) => [a] -> a
6 | sumPoly (x:xs) = foldl (+) x xs
7 |
8 |
--------------------------------------------------------------------------------
/tests/neg/Sumk.hquals:
--------------------------------------------------------------------------------
1 | qualif PPLUS0(v:int): v >= ~A + ~B
2 | qualif PPLUS1(v:int): v > ~A + ~B
3 |
--------------------------------------------------------------------------------
/tests/neg/T1267.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | {-@ LIQUID "--max-case-expand=0" @-}
3 |
4 | module T1267 where
5 |
6 | data ABC = A | B | C
7 |
8 | foo :: Int -> ABC -> ()
9 | foo 0 A = ()
10 | foo x A | x /= 0 = ()
11 | foo _ A = error " "
12 | foo _ t = ()
13 |
--------------------------------------------------------------------------------
/tests/neg/T1286.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module T1286 where
3 |
4 | {-@ fails :: {v:Bool | v} @-}
5 | fails = 'a' == 'b'
6 |
7 | {-@ ok :: {v:Bool | v} @-}
8 | ok = "a" == "a"
9 |
--------------------------------------------------------------------------------
/tests/neg/T1288.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module T1288 where
3 |
4 | {-@ measure foo @-}
5 | foo :: () -> Int
6 | foo _ = 10
7 |
8 | {-@ blub :: {v:Int | v = 100} @-}
9 | blub = foo ()
10 |
--------------------------------------------------------------------------------
/tests/neg/T743.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module T743 where
3 |
4 | {-@ checkNat :: Nat -> Int @-}
5 | checkNat :: Int -> Int
6 | checkNat x = x
7 |
8 | unsound :: Int
9 | unsound = checkNat (-1)
10 |
11 | data TestBS = TestBS Int deriving (Read)
12 |
--------------------------------------------------------------------------------
/tests/neg/TermReal.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module TermReal where
3 |
4 | {-@ search :: { hi : Int | 0 < hi } -> Int @-}
5 | search :: Int -> Int
6 | search hi = search (hi `div` 2)
7 |
--------------------------------------------------------------------------------
/tests/neg/TerminationNum.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module TerminationNum where
3 |
4 | {-@ fak2 :: (Ord a, Eq a, Num a) => y:{x: a | x >= 0} -> a /[y]@-}
5 | fak2 :: (Ord a, Eq a, Num a) => a -> a
6 | fak2 0 = 1
7 | fak2 x = x * fak2 (x + 1)
8 |
--------------------------------------------------------------------------------
/tests/neg/Test00a.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Test00a () where
3 |
4 | import Language.Haskell.Liquid.Prelude
5 |
6 | x = choose 0
7 |
8 | prop_abs = if x > 0 then baz x else False
9 |
10 | baz z = liquidAssertB (z >= 10)
11 |
--------------------------------------------------------------------------------
/tests/neg/Test00c.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Test00c (ok, inc) where
3 |
4 | {-@ ok
5 | :: Int -> Nat
6 | @-}
7 | ok :: Int -> Int
8 | ok x = x + 120
9 |
10 | {-@ inc :: Int -> Nat @-}
11 | inc :: Int -> Int
12 | inc x = x + 10
13 |
--------------------------------------------------------------------------------
/tests/neg/Test1.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Test1 () where
3 |
4 | import Language.Haskell.Liquid.Prelude
5 |
6 | myabs x = if x `gt` 0 then x else 0 `minus` x
7 |
8 | n = choose 0
9 |
10 | prop_absf = liquidAssertB ((myabs n) `geq` 4)
11 |
--------------------------------------------------------------------------------
/tests/neg/TopLevel.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module TopLevel where
3 |
4 | import Language.Haskell.Liquid.Prelude
5 |
6 | foo b = liquidAssertB b
7 |
8 | bar = foo True
9 |
--------------------------------------------------------------------------------
/tests/neg/Truespec.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Truespec (foo) where
3 |
4 | import Language.Haskell.Liquid.Prelude (liquidAssert)
5 |
6 | {-@ foo :: Int -> Int @-}
7 | foo :: Int -> Int
8 | foo x = liquidAssert (x > 0) $ x + 1
9 |
--------------------------------------------------------------------------------
/tests/neg/Variance1.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Variance1 where
3 |
4 | import Data.Binary
5 |
6 |
7 | {-@ assume error :: { x : String | false } -> a @-}
8 |
9 | example :: Get ()
10 | example = do
11 | _ <- return ()
12 | error "URK"
13 |
--------------------------------------------------------------------------------
/tests/parser/pos/T884.hs:
--------------------------------------------------------------------------------
1 | module T884 where
2 |
3 | {-@ isEmpty :: x:[Int] -> {v:Bool | v <=> len x == 0} @-}
4 | isEmpty :: [Int] -> Bool
5 | isEmpty [] = True
6 | isEmpty (_:_) = False
7 |
--------------------------------------------------------------------------------
/tests/parser/pos/TokensAsPrefixes.hs:
--------------------------------------------------------------------------------
1 | module TokensAsPrefixes where
2 |
3 | {-@ instancesB :: Int -> Int @-}
4 | instancesB :: Int -> Int
5 | instancesB x = x
6 |
--------------------------------------------------------------------------------
/tests/parsing-errors/EmptySig.hs:
--------------------------------------------------------------------------------
1 | -- This can't catch parse errors
2 | {-@ LIQUID "--expect-error-containing=Cannot parse specification" @-}
3 |
4 | module EmptySig where
5 |
6 | {-@ :: foo -> x:Int -> {v:Int | v > x} @-}
7 | foo :: Int -> Int
8 | foo x = x - 1
9 |
--------------------------------------------------------------------------------
/tests/parsing-errors/ParseBind.hs:
--------------------------------------------------------------------------------
1 | -- We should reject the below to disallow uppercase binders
2 |
3 | module ParseBind where
4 |
5 | {-@ id :: Foo:Int -> Int @-}
6 | id :: Int -> Int
7 | id x = x
8 |
--------------------------------------------------------------------------------
/tests/parsing-errors/app/Main.hs:
--------------------------------------------------------------------------------
1 | -- This is here so parsing fails on Main.hs too!
2 | {-@ id :: Foo:Int -> Int @-}
3 |
4 | module Main where
5 |
6 | main :: IO ()
7 | main = putStrLn "Hello, Haskell!"
8 |
--------------------------------------------------------------------------------
/tests/pattern/pos/Return00.hs:
--------------------------------------------------------------------------------
1 |
2 | module Return00 where
3 |
4 |
5 |
6 | {-@ silly :: (Monad m) => m Int @-}
7 | silly :: (Monad m) => m Int
8 | silly = return 0
9 |
--------------------------------------------------------------------------------
/tests/pattern/pos/Return01.hs:
--------------------------------------------------------------------------------
1 |
2 | module Return01 where
3 |
4 | {-@ silly :: IO {v:Int | v = 0} @-}
5 | silly :: IO Int
6 | silly = return 0
7 |
8 |
--------------------------------------------------------------------------------
/tests/pattern/pos/ReturnStrata00.hs:
--------------------------------------------------------------------------------
1 |
2 | module ReturnStrata00 where
3 |
4 | bar :: IO ()
5 | bar = if True then return () else undefined
6 |
--------------------------------------------------------------------------------
/tests/pattern/pos/TemplateHaskell.hs:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE TemplateHaskell #-}
2 |
3 | module TemplateHaskell where
4 |
5 | import TemplateHaskellLib
6 |
7 | hello = "World"
8 | bar
9 |
10 |
--------------------------------------------------------------------------------
/tests/ple/pos/Ple0.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--reflection" @-}
2 | {-@ LIQUID "--ple" @-}
3 |
4 | module Ple0 where
5 |
6 | {-@ reflect adder @-}
7 | adder :: Int -> Int -> Int
8 | adder x y = x + y
9 |
10 | {-@ prop :: { adder 5 6 == 11 } @-}
11 | prop = ()
12 |
--------------------------------------------------------------------------------
/tests/pos/Absref_crash.hs:
--------------------------------------------------------------------------------
1 | module Absref_crash where
2 |
3 | data L a = C (L a)
4 |
5 | {-@ data L a Bool> = C { xs :: L a } @-}
6 |
7 | {-@ lazy foo @-}
8 | foo :: b -> L a
9 | foo x = C $ foo x
10 |
--------------------------------------------------------------------------------
/tests/pos/Ackermann.hs:
--------------------------------------------------------------------------------
1 | module Ackermann () where
2 |
3 | {-@ ack :: m:Nat -> n:Nat -> Nat / [m, n]@-}
4 | ack :: Int -> Int -> Int
5 | ack m n
6 | | m == 0 = n + 1
7 | | m > 0 && n == 0 = ack (m-1) 1
8 | | m > 0 && n > 0 = ack (m-1) (ack m (n-1))
9 |
--------------------------------------------------------------------------------
/tests/pos/Adt0.hs:
--------------------------------------------------------------------------------
1 | module Adt0 () where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 | data Pair a = P a Int | D a Bool
6 |
7 |
8 | goo z = P z z
9 |
10 | baz = goo 10
11 |
--------------------------------------------------------------------------------
/tests/pos/Assume.hs:
--------------------------------------------------------------------------------
1 | module Assume where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 | {-@ assume foo :: {v:Bool | v} @-}
6 | foo = False
7 |
8 | bar = liquidAssertB foo
9 |
--------------------------------------------------------------------------------
/tests/pos/AssumedRecursive.hs:
--------------------------------------------------------------------------------
1 | module AssumedRecursive where
2 |
3 | {-@ lazy foo @-}
4 | {-@ assume foo :: a -> a @-}
5 | foo :: a -> a
6 | foo f = foo f
7 |
--------------------------------------------------------------------------------
/tests/pos/BangPatterns.hs:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE BangPatterns #-}
2 | module BangPatterns where
3 |
4 | import Data.IORef
5 |
6 | import Language.Haskell.Liquid.Prelude
7 |
8 | foo :: IORef a -> IORef a
9 | {-@ foo :: x:IORef a -> {v:IORef a | v = x} @-}
10 | foo !x = x
11 |
--------------------------------------------------------------------------------
/tests/pos/Bool0.hs:
--------------------------------------------------------------------------------
1 | module Bool0 where
2 |
3 | {-@ myhead :: {v:[a] | nonEmpty v} -> a @-}
4 | myhead (x:_) = x
5 |
6 | {-@ measure nonEmpty @-}
7 | nonEmpty :: [a] -> Bool
8 | nonEmpty (x:xs) = True
9 | nonEmpty [] = False
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/tests/pos/Bool1.hs:
--------------------------------------------------------------------------------
1 | module Bool1 where
2 |
3 | {-@ baz :: x:Bool -> {v:Bool | v == x} @-}
4 | baz :: Bool -> Bool
5 | baz x = x
6 |
--------------------------------------------------------------------------------
/tests/pos/Bool2.hs:
--------------------------------------------------------------------------------
1 | module Bool2 where
2 |
3 |
4 | {-@ gerb :: (Ord a) => x:a -> {v:a | x <= v } -> {v:a | x <= v} @-}
5 | gerb :: (Ord a) => a -> a -> a
6 | gerb x y = y
7 |
8 |
9 | moo = gerb False False
10 |
--------------------------------------------------------------------------------
/tests/pos/CharLiterals.hs:
--------------------------------------------------------------------------------
1 | -- see #1286
2 | module CharLiterals where
3 |
4 | {-@ fails :: {v:Bool | v} @-}
5 | fails = 'a' == 'a'
6 |
7 | {-@ ok :: {v:Bool | v} @-}
8 | ok = "a" == "a"
9 |
--------------------------------------------------------------------------------
/tests/pos/Comma.hs:
--------------------------------------------------------------------------------
1 | module Comma where
2 |
3 | {-@ measure mysnd @-}
4 | mysnd :: (a, b) -> b
5 | mysnd (_, y) = y
6 |
7 | {-@ foo :: x:Int -> {v:Int | v == x} @-}
8 | foo :: Int -> Int
9 | foo x = mysnd (x, x)
10 |
11 |
--------------------------------------------------------------------------------
/tests/pos/CommentedOut.hs:
--------------------------------------------------------------------------------
1 | module CommentedOut where
2 |
3 | {- {-@ nats :: [Nat] @-} -}
4 | nats :: [Int]
5 | nats = [-1,0,1,2,3,4,5,6,7,8,9,10]
6 |
7 |
--------------------------------------------------------------------------------
/tests/pos/Comprehension.hs:
--------------------------------------------------------------------------------
1 | module Comprehension where
2 |
3 | {-@ foo :: n:Int -> [{v:Nat | v <= n}] @-}
4 | foo :: Int -> [Int]
5 | foo n = [0 .. n]
6 |
7 | {-@ assume enumFromTo :: (Enum a) => lo:a -> hi:a -> [{v:a | lo <= v && v <= hi}] @-}
8 |
--------------------------------------------------------------------------------
/tests/pos/CosPosTest.hs:
--------------------------------------------------------------------------------
1 | module CosPosTest where
2 |
3 | test :: Floating a => a -> a
4 | test x = cos x
5 |
--------------------------------------------------------------------------------
/tests/pos/Csgordon_issue_296.hs:
--------------------------------------------------------------------------------
1 | module Csgordon_issue_296 where
2 |
3 | {-@ measure fwd_extends :: IO () -> IO () -> Bool @-}
4 | {-@ assume fwd_extends_refl :: m:IO () -> {v:Bool | (fwd_extends m m)} @-}
5 | fwd_extends_refl :: IO () -> Bool
6 | fwd_extends_refl = undefined
7 |
--------------------------------------------------------------------------------
/tests/pos/Datacon1.hs:
--------------------------------------------------------------------------------
1 | module Datacon1 () where
2 |
3 | data Foo a = F a a a
4 |
5 | z :: Foo Int
6 | z = F 1 2 3
7 |
8 |
--------------------------------------------------------------------------------
/tests/pos/Datacon_inv.hs:
--------------------------------------------------------------------------------
1 | module Datacon_inv where
2 |
3 | data T = A | B
4 |
5 | {-@ invariant {v:T | (v = A || v = B)} @-}
6 |
7 | thisIsA = A
8 | thisIsB = B
9 |
--------------------------------------------------------------------------------
/tests/pos/DependentPairsFun.hs:
--------------------------------------------------------------------------------
1 | module DependentPairsFun where
2 |
3 |
4 | {-@ ex :: (y::Int, () -> {v:() | 0 < y } )
5 | -> (y::Int, {v:() | 0 < y})
6 | @-}
7 | ex ::(Int,() -> ()) -> (Int,())
8 | ex (y, pxToqxy) = (y,pxToqxy ())
9 |
--------------------------------------------------------------------------------
/tests/pos/Deptup1.pred:
--------------------------------------------------------------------------------
1 | assumep mkPair :: forall a b. forAll p:b(fld:a). a -> b -> Pair a b < >
2 |
--------------------------------------------------------------------------------
/tests/pos/Div000.hs:
--------------------------------------------------------------------------------
1 | module Div000 (bar) where
2 |
3 | {-@ mydiv :: Int -> {v:Int | v /= 0} -> Int @-}
4 | mydiv :: Int -> Int -> Int
5 | mydiv = undefined
6 |
7 | foo :: Int -> Int
8 | foo _ = 12
9 |
10 | bar :: Int -> Int
11 | bar m = mydiv m z where z = foo m
12 |
--------------------------------------------------------------------------------
/tests/pos/Duplicate_bind.hs:
--------------------------------------------------------------------------------
1 | module Duplicate_bind where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 | insert key value [] = [(key, value)]
6 | insert _ _ _ = unsafeError ""
7 |
--------------------------------------------------------------------------------
/tests/pos/Even.hs:
--------------------------------------------------------------------------------
1 | module Even where
2 |
3 | {-@ notEven :: Int -> Even @-}
4 | notEven :: Int -> Int
5 | notEven x = x * 2
6 |
--------------------------------------------------------------------------------
/tests/pos/Even0.hs:
--------------------------------------------------------------------------------
1 | module Even0 () where
2 |
3 | {-@ isEven :: n:Nat -> Bool / [n, 0]@-}
4 | {-@ isOdd :: m:Nat -> Bool / [m, 1] @-}
5 | isEven, isOdd :: Int -> Bool
6 |
7 | isEven 0 = True
8 | isEven n = isOdd $ n - 1
9 |
10 | isOdd k = not $ isEven k
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/tests/pos/ExactGADT0.hs:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE GADTs #-}
2 |
3 | {-@ LIQUID "--exact-data-con" @-}
4 |
5 |
6 | module ExactGADT0 where
7 |
8 | data Value a where
9 | VInt :: Int -> Value Int
10 | VBool :: Bool -> Value Bool
11 |
--------------------------------------------------------------------------------
/tests/pos/ExactGADT1.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--exact-data-con" @-}
2 |
3 | {-# LANGUAGE GADTs #-}
4 |
5 | module ExactGADT1 where
6 |
7 | data Field typ where
8 | FldX :: Field Int
9 | FldY :: Field Int
10 |
11 | poogle = FldY
12 |
--------------------------------------------------------------------------------
/tests/pos/ExpPosTest.hs:
--------------------------------------------------------------------------------
1 | module ExpPosTest where
2 |
3 | test :: Floating a => a -> a
4 | test x = exp x
5 |
--------------------------------------------------------------------------------
/tests/pos/ExponentiationPosTest.hs:
--------------------------------------------------------------------------------
1 | module ExponentiationPosTest where
2 |
3 | test :: Floating a => a
4 | test = 3 ** (-1)
5 |
6 | test2 :: Floating a => a
7 | test2 = 0 ** 2
8 |
--------------------------------------------------------------------------------
/tests/pos/Fail.hs:
--------------------------------------------------------------------------------
1 | module Fail where
2 |
3 | {-@ fail incr @-}
4 | {-@ incr :: x:Int -> {v:Int | x < v } @-}
5 | incr :: Int -> Int
6 | incr x = x
7 |
8 | {-@ fail unsafe @-}
9 | {-@ unsafe :: () -> { 0 == 1 } @-}
10 | unsafe :: () -> ()
11 | unsafe _ = ()
12 |
--------------------------------------------------------------------------------
/tests/pos/FailName.hs:
--------------------------------------------------------------------------------
1 | module FailName where
2 |
3 | bar = fail
4 | where fail = foo
5 | foo = 3 -- undefined
6 |
7 |
8 | bar1 = fail ()
9 | where fail = foo
10 | foo = undefined
11 |
--------------------------------------------------------------------------------
/tests/pos/Foldr.hs:
--------------------------------------------------------------------------------
1 | module Foldr where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 | import Data.List (foldl')
5 |
6 | foo :: a -> b -> c -> d
7 | foo = \_ _ _ -> unsafeError "False"
8 |
9 | bar :: p -> [(q, r)] -> p
10 | bar = foldr (\(k, v) -> foo k v)
11 |
--------------------------------------------------------------------------------
/tests/pos/Foo.hs:
--------------------------------------------------------------------------------
1 | module Foo where
2 |
3 | bar = 0
4 |
5 | {-@ assume ++ :: [a] -> [a] -> [a] @-}
6 |
--------------------------------------------------------------------------------
/tests/pos/Grty2.hs:
--------------------------------------------------------------------------------
1 | module Grty2 () where
2 |
3 | {-@ foo :: {vv:[{v:[a]|((len v) = 1)}]|((len vv)= 1)} -> [[a]] @-}
4 | foo [[x]] = [[x]]
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/tests/pos/Grty3.hs:
--------------------------------------------------------------------------------
1 | module Grty3 () where
2 |
3 | {-@ bar :: (a, {v:[b]|((len v) = 1)}) -> b @-}
4 | bar (_, [x]) = x
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/tests/pos/Hex00.hs:
--------------------------------------------------------------------------------
1 | module Hex00 where
2 |
3 | foo :: Int -> Int -> Int
4 | foo x y = x + y
5 |
6 | {-@ foo :: {x:Int | x = 0x7} -> {y:Int | y = 0x8} -> {v:Int | v = 0xF} @-}
7 |
8 |
--------------------------------------------------------------------------------
/tests/pos/HigherOrderRecFun.hs:
--------------------------------------------------------------------------------
1 | module HigherOrderRecFun () where
2 |
3 | foo :: [a] -> (b -> c) -> (b -> c)
4 | foo [] f = f
5 | foo (x:xs) f = foo xs f
6 |
7 |
--------------------------------------------------------------------------------
/tests/pos/Hole_fun.hs:
--------------------------------------------------------------------------------
1 | module Hole_fun (test) where
2 |
3 | inc :: Int -> Int
4 | inc x = x + 1
5 |
6 | {-@ app :: _ -> Nat -> Nat @-}
7 | app :: (Int -> Int) -> Int -> Int
8 | app f x = f x
9 |
10 | test = app inc 7
11 |
--------------------------------------------------------------------------------
/tests/pos/IdNat.hs:
--------------------------------------------------------------------------------
1 | module IdNat where
2 |
3 | {-@ nat :: Nat @-}
4 | nat :: Int
5 | nat = id 0 -- (id (id (id (id 0))))
6 |
--------------------------------------------------------------------------------
/tests/pos/IdNat0.hs:
--------------------------------------------------------------------------------
1 | module IdNat0 where
2 |
3 | {-@ nat :: Nat @-}
4 | nat :: Int
5 | nat = idd 0
6 |
7 | idd :: a -> a
8 | idd = undefined
9 |
--------------------------------------------------------------------------------
/tests/pos/Ignores.hs:
--------------------------------------------------------------------------------
1 | module Ignores where
2 |
3 | {-@ ignore inc @-}
4 | {-@ inc :: Nat -> Nat @-}
5 | inc :: Int -> Int
6 | inc x = x - 1
7 |
8 |
--------------------------------------------------------------------------------
/tests/pos/Implies.hs:
--------------------------------------------------------------------------------
1 | module Implies where
2 |
3 | {-@ inline implies @-}
4 | implies p q = (not p) || q
5 |
6 |
--------------------------------------------------------------------------------
/tests/pos/Ite.hs:
--------------------------------------------------------------------------------
1 | module Ite () where
2 |
3 | {-@ assert myabs :: x:Int -> {v: Int | if x > 0 then v = x else v + x = 0 } @-}
4 | myabs :: Int -> Int
5 | myabs x | x > 0 = x
6 | | otherwise = (0 - x)
7 |
--------------------------------------------------------------------------------
/tests/pos/Ite1.hs:
--------------------------------------------------------------------------------
1 | module Ite1 () where
2 |
3 | {-@ assert myabs :: x:Int -> {v: Int | v = (if x > 0 then x else (0 - x)) } @-}
4 | myabs :: Int -> Int
5 | myabs x | x > 0 = x
6 | | otherwise = (0 - x)
7 |
--------------------------------------------------------------------------------
/tests/pos/Lex.hs:
--------------------------------------------------------------------------------
1 | -- TAG: termination
2 |
3 | module Lex (foo) where
4 |
5 | bar = foo [1, 2, 3] [2, 3, 4]
6 |
7 | {- decrease foo 1 2 @-}
8 | foo xs (y:ys) = foo xs ys
9 | foo (x:xs) ys = foo xs ys
10 | foo xs ys = xs
11 |
--------------------------------------------------------------------------------
/tests/pos/Lib521.hs:
--------------------------------------------------------------------------------
1 | module Lib521 where
2 |
3 | {-@ measure size @-}
4 | {-@ size :: xs:[a] -> {v:Nat | v = size xs} @-}
5 | size :: [a] -> Int
6 | size [] = 0
7 | size (_:rs) = 1 + size rs
8 |
--------------------------------------------------------------------------------
/tests/pos/Lit.hs:
--------------------------------------------------------------------------------
1 | module Lit where
2 |
3 | {-@ test :: {v:Int | v == 3} @-}
4 | test = length "cat"
5 |
--------------------------------------------------------------------------------
/tests/pos/LocalSpec.hs:
--------------------------------------------------------------------------------
1 | module LocalSpec where
2 |
3 | import LocalSpecLib
4 |
5 | {-@ bar :: {x:Int | x > 99} -> {v:Int | v > 100 } @-}
6 | bar :: Int -> Int
7 | bar x = foo x
8 |
--------------------------------------------------------------------------------
/tests/pos/LocalSpecLib.hs:
--------------------------------------------------------------------------------
1 | module LocalSpecLib (foo) where
2 |
3 | {-@ foo :: x:Int -> {v:Int | v > x } @-}
4 | foo :: Int -> Int
5 | foo x = go x
6 |
7 | {-@ go :: n:Int -> {v:Int | v = n + 1} @-}
8 | go :: Int -> Int
9 | go x = x + 1
10 |
--------------------------------------------------------------------------------
/tests/pos/LogPosTest.hs:
--------------------------------------------------------------------------------
1 | module LogPosTest where
2 |
3 | test :: Floating a => a
4 | test = log 3
5 |
--------------------------------------------------------------------------------
/tests/pos/LooLib.hs:
--------------------------------------------------------------------------------
1 | module LooLib ( module LooLibLib , plusTwo ) where
2 |
3 | import LooLibLib
4 |
5 | {-@ plusTwo :: x:Int -> {v:Int | v = x + 2} @-}
6 | plusTwo :: Int -> Int
7 | plusTwo = plusOne . plusOne
8 |
9 |
--------------------------------------------------------------------------------
/tests/pos/LooLibLib.hs:
--------------------------------------------------------------------------------
1 | module LooLibLib (plusOne) where
2 |
3 | {-@ plusOne :: x:Int -> {v:Int| v = x + 1 } @-}
4 | plusOne :: Int -> Int
5 | plusOne x = x + 1
6 |
--------------------------------------------------------------------------------
/tests/pos/MapTvCrash.hs:
--------------------------------------------------------------------------------
1 | module MapTvCrash (foo) where
2 |
3 | import Foreign.ForeignPtr
4 |
5 | {-@ foo :: FinalizerPtr a -> a @-}
6 | foo :: FinalizerPtr a -> a
7 | foo = undefined
8 |
--------------------------------------------------------------------------------
/tests/pos/MaskError.hs:
--------------------------------------------------------------------------------
1 | module MaskError where
2 |
3 | {-@ assume error :: String -> a @-}
4 |
5 | foo :: Int -> Int
6 | foo _ = error "oh no"
7 |
--------------------------------------------------------------------------------
/tests/pos/Maybe5.hs:
--------------------------------------------------------------------------------
1 | module Maybe5 where
2 |
3 | import Data.Maybe
4 |
5 |
6 | {-@ foo :: {x:_ | isJust x} -> a @-}
7 | foo :: Maybe a -> a
8 | foo x = fromJust x
9 |
--------------------------------------------------------------------------------
/tests/pos/Meas00a.hs:
--------------------------------------------------------------------------------
1 | module Meas00a () where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 | prop0 = liquidAssertB True
6 |
--------------------------------------------------------------------------------
/tests/pos/Meas2.hs:
--------------------------------------------------------------------------------
1 | module Meas2 (n) where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 | mylen :: [a] -> Int
6 | mylen [] = 0
7 | mylen (_:xs) = 1 + mylen xs
8 |
9 |
10 | zs :: [Int]
11 | zs = [1..100]
12 |
13 | n = mylen zs
14 |
15 |
--------------------------------------------------------------------------------
/tests/pos/Mod.hs:
--------------------------------------------------------------------------------
1 | module Mod where
2 |
3 | import qualified ModLib as M
4 |
5 | {-@ inc :: x:M.Goo -> {v: M.Goo | M.myg v > M.myg x} @-}
6 | inc (M.G x) = M.G (x + 1)
7 |
8 |
--------------------------------------------------------------------------------
/tests/pos/ModLib.hs:
--------------------------------------------------------------------------------
1 | module ModLib where
2 |
3 | data Goo = G Int
4 |
5 | {-@ measure myg :: ModLib.Goo -> Int
6 | myg (ModLib.G n) = n
7 | @-}
8 |
9 | {-@ inc :: x:Goo -> {v: Goo | (myg v) > (myg x)} @-}
10 | inc (G x) = G (x + 1)
11 |
12 |
13 |
--------------------------------------------------------------------------------
/tests/pos/Monad2.hs:
--------------------------------------------------------------------------------
1 | module Monad2 () where
2 |
3 | goo c = return c
4 |
5 | foo =
6 | do x <- Just 1
7 | y <- goo 3
8 | return $ x + y
9 |
--------------------------------------------------------------------------------
/tests/pos/Multi_pred_app_00.hs:
--------------------------------------------------------------------------------
1 | module Multi_pred_app_00 () where
2 |
3 | {-@ foo :: forall < p :: Int -> Bool
4 | , q :: Int -> Bool >. Int -> Int @-}
5 | foo :: Int -> Int
6 | foo x = x
7 |
--------------------------------------------------------------------------------
/tests/pos/Nats.hs:
--------------------------------------------------------------------------------
1 | module Nats where
2 |
3 | {-@ nats :: [Nat] @-}
4 | nats :: [Int]
5 | nats = [1,2,3,4,5,6,7,8,9,10]
6 |
--------------------------------------------------------------------------------
/tests/pos/NoExhaustiveGuardsError.hs:
--------------------------------------------------------------------------------
1 | module NoExhaustiveGuardsError where
2 |
3 | {-@ LIQUID "--no-totality" @-}
4 | bar :: Int -> Int -> Int
5 | bar x y | x > y = 1
6 | | x <= y = 0
7 |
--------------------------------------------------------------------------------
/tests/pos/Null.hs:
--------------------------------------------------------------------------------
1 | module Null where
2 |
3 | foo :: [a] -> [a]
4 | foo xs = if null xs then [] else tail xs
5 |
--------------------------------------------------------------------------------
/tests/pos/NumRefl1.hs:
--------------------------------------------------------------------------------
1 | module NumRefl1 where
2 |
3 | {-
4 | The `define` should be propagated from NumRefl, otherwise the test fails
5 | with the same error.
6 | -}
7 | import NumRefl
8 |
9 | {-@ reflect toNum1 @-}
10 | toNum1 :: Num p => () -> p
11 | toNum1 _ = -2
12 |
13 |
--------------------------------------------------------------------------------
/tests/pos/Pargs.hs:
--------------------------------------------------------------------------------
1 | module Pargs () where
2 |
3 | {-@ foo :: forall a x1:a -> Bool>.
4 | (i:Int -> a ) -> {v:Int| v=0}
5 | -> a
6 | @-}
7 |
8 | foo :: (Int -> a) -> Int -> a
9 | foo f i = f i
10 |
11 |
--------------------------------------------------------------------------------
/tests/pos/Partial_tycon.hs:
--------------------------------------------------------------------------------
1 | module Partial_tycon () where
2 |
3 | data Id a = Id a
4 |
5 | data Foo m a = Foo (m a)
6 |
7 | foo :: Foo Id a
8 | foo = undefined
9 |
--------------------------------------------------------------------------------
/tests/pos/Poly3.hs:
--------------------------------------------------------------------------------
1 | module Poly3 (goo) where
2 |
3 | expand :: (a -> [b]) -> [a] -> [b]
4 | expand f [] = []
5 | expand f (x:xs) = (f x) ++ (expand f xs)
6 |
7 | baz :: a -> [Int]
8 | baz _ = [0]
9 |
10 | goo = expand baz
11 |
12 |
--------------------------------------------------------------------------------
/tests/pos/Poly3a.hs:
--------------------------------------------------------------------------------
1 | module Poly3a (goo) where
2 |
3 | expand f [] = []
4 | expand f (x:xs) = (f x) ++ (expand f xs)
5 |
6 | baz :: a -> [Int]
7 | baz _ = [0]
8 |
9 | goo = expand baz
10 |
11 |
--------------------------------------------------------------------------------
/tests/pos/Poly4.hs:
--------------------------------------------------------------------------------
1 | module Poly4 () where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 | x = choose 0
6 |
7 | baz y = y
8 |
9 | prop = liquidAssertB (baz True)
10 |
--------------------------------------------------------------------------------
/tests/pos/Polyfun.hs:
--------------------------------------------------------------------------------
1 | module Polyfun () where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 | foo :: a -> [Int]
6 | foo f = [0]
7 |
8 | prop = all (\z -> liquidAssertB (z >= 0)) zs
9 | where zs = foo id
10 |
--------------------------------------------------------------------------------
/tests/pos/PositivityCheck.hs:
--------------------------------------------------------------------------------
1 | module PositivityCheck where
2 |
3 | data Good1 a = Nil | Cons a (Good1 a)
4 | data Good2 a = Yes ((Good2 a -> Int) -> Int)
5 |
6 | data GoodRec1 a = YesRec1 (GoodRec2 a -> Int)
7 | data GoodRec2 a = YesRec2 (GoodRec1 a -> Int)
8 |
9 |
--------------------------------------------------------------------------------
/tests/pos/Pragma0.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--notermination" @-}
2 |
3 | module Pragma0 where
4 |
5 |
6 | -- an obviously non-terminating function
7 | zoo :: Int -> Int
8 | zoo x = zoo x
9 |
--------------------------------------------------------------------------------
/tests/pos/Profcrasher.hs:
--------------------------------------------------------------------------------
1 | module Profcrasher () where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 | x :: Int
6 | x = 4
7 |
--------------------------------------------------------------------------------
/tests/pos/Propmeasure1.hs:
--------------------------------------------------------------------------------
1 | module Propmeasure1 where
2 |
3 | nil = []
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/pos/QQTySig.hs:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE QuasiQuotes #-}
2 |
3 | module QQTySig where
4 |
5 | import LiquidHaskell
6 |
7 | [lq| nats :: [{ v:Int | 0 <= v }] |]
8 | nats = [0,1,2,3,4,5,6,7,8,9,10]
9 |
10 |
--------------------------------------------------------------------------------
/tests/pos/Recursion0.hs:
--------------------------------------------------------------------------------
1 | module Recursion0 where
2 |
3 |
4 | {-@ total :: Nat -> Nat @-}
5 | total :: Int -> Int
6 | total 0 = 0
7 | total n = 1 + total (n-1)
8 |
9 |
--------------------------------------------------------------------------------
/tests/pos/ReflectAlias.hs:
--------------------------------------------------------------------------------
1 | -- See LH #1086
2 |
3 | {-# LANGUAGE ScopedTypeVariables #-}
4 |
5 | module ReflectAlias where
6 |
7 | type Val = Int
8 |
9 | {-@ reflect poo @-}
10 | poo :: Int -> Int
11 | poo y = (\(x :: Val) -> x + 1) y
12 |
--------------------------------------------------------------------------------
/tests/pos/ReflectBooleanFunctions.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--exactdc" @-}
2 | {-@ LIQUID "--higherorder" @-}
3 | module ReflectBooleanFunctions where
4 |
5 |
6 | {-@ reflect foo @-}
7 | foo :: (Int -> Bool) -> (Int -> Bool) -> Bool
8 | foo f g = (f 1) && (g 1)
9 |
--------------------------------------------------------------------------------
/tests/pos/Resolve.hs:
--------------------------------------------------------------------------------
1 | module Resolve where
2 |
3 | import qualified ResolveA as RA
4 | import qualified ResolveB as RB
5 |
6 |
7 | {-@ x :: {v:RB.Bar | ((v = RB.B) && (NotA v))} @-}
8 | x = RB.B
9 |
10 | zebra :: Int
11 | zebra = 12
12 |
--------------------------------------------------------------------------------
/tests/pos/ResolveB.hs:
--------------------------------------------------------------------------------
1 | module ResolveB where
2 |
3 | {-@ measure getFoo :: Foo -> Int
4 | getFoo (Foo x) = x
5 | @-}
6 |
7 | data Foo = Foo Int
8 |
9 | data Bar = A | B | C
10 |
--------------------------------------------------------------------------------
/tests/pos/ResolveBLib.hs:
--------------------------------------------------------------------------------
1 | module ResolveBLib where
2 |
3 | {-@ measure getFoo :: Foo -> Int
4 | getFoo (Foo x) = x
5 | @-}
6 |
7 | data Foo = Foo Int
8 |
9 | data Bar = A | B | C
10 |
--------------------------------------------------------------------------------
/tests/pos/SimplerNotation.hs:
--------------------------------------------------------------------------------
1 | module SimplerNotation () where
2 |
3 | {-@ myDiv :: x:Int -> y:{Int | y != 0} -> {v:Int | v = x / y} @-}
4 | myDiv :: Int -> Int -> Int
5 | myDiv = div
6 |
--------------------------------------------------------------------------------
/tests/pos/SinPosTest.hs:
--------------------------------------------------------------------------------
1 | module SinPosTest where
2 |
3 | test :: Floating a => a -> a
4 | test x = sin x
5 |
--------------------------------------------------------------------------------
/tests/pos/SqrtPosTest.hs:
--------------------------------------------------------------------------------
1 | module SqrtPosTest where
2 |
3 | test :: Floating a => a
4 | test = sqrt 2
5 |
--------------------------------------------------------------------------------
/tests/pos/State.hquals:
--------------------------------------------------------------------------------
1 |
2 | qualif Snd( v : b_t,
3 | p : Pred b_t a,
4 | a : fix##40##41# a b):
5 | (papp2 p v (fst a))
6 |
7 | qualif Fst( v : a,
8 | a : fix##40##41# a b):
9 | (v = fst a)
10 |
11 |
--------------------------------------------------------------------------------
/tests/pos/State00.hs:
--------------------------------------------------------------------------------
1 | module State00 () where
2 |
3 | type State = Int
4 | data ST a b = Superb (b -> (a, b))
5 |
6 | {-@ fresh :: ST {v:Int | v >= 0} {v:Int | v >= 0} @-}
7 | fresh :: ST Int Int
8 | fresh = Superb (\n -> (n, n+1))
9 |
10 |
11 |
--------------------------------------------------------------------------------
/tests/pos/String00.hs:
--------------------------------------------------------------------------------
1 | module String00 () where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 | foo = "dog"
6 |
7 | prop1 = liquidAssertB (0 == 0)
8 | prop2 = liquidAssertB (1 /= 0)
9 |
--------------------------------------------------------------------------------
/tests/pos/StringLit.hs:
--------------------------------------------------------------------------------
1 | module StringLit where
2 |
3 | {-@ foo :: {v:String | len v = 3} @-}
4 | foo = "foo"
5 |
--------------------------------------------------------------------------------
/tests/pos/T1045.hs:
--------------------------------------------------------------------------------
1 | module T1045 where
2 |
3 | import T1045a
4 |
5 | foo :: Int -> Int
6 | foo x = x
7 |
--------------------------------------------------------------------------------
/tests/pos/T1045.hs-boot:
--------------------------------------------------------------------------------
1 | module T1045 where
2 |
3 | foo :: Int -> Int
4 |
--------------------------------------------------------------------------------
/tests/pos/T1045a.hs:
--------------------------------------------------------------------------------
1 | module T1045a where
2 |
3 | import {-# SOURCE #-} T1045
4 |
5 | bar = foo
6 |
--------------------------------------------------------------------------------
/tests/pos/T1045aLib.hs:
--------------------------------------------------------------------------------
1 | module T1045aLib where
2 |
3 | import {-# SOURCE #-} T1045
4 |
5 | bar = foo
6 |
--------------------------------------------------------------------------------
/tests/pos/T1085.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--exact-data-cons" @-}
2 |
3 | module T1085 where
4 |
5 | {-@ data HEither a b = HLeft a | HRight b @-}
6 | data HEither a b = HLeft a | HRight b
7 |
8 | {-@ data HMaybe a = HJust a | HNothing @-}
9 | data HMaybe a = HJust a | HNothing
10 |
--------------------------------------------------------------------------------
/tests/pos/T1198_1.hs:
--------------------------------------------------------------------------------
1 | module T1198_1 where
2 |
3 | {-@ data Tree [sz] @-}
4 | data Tree a = Bin | Node (Tree a) (Tree a)
5 |
6 | {-@ measure sz @-}
7 | sz :: Tree a -> Int
8 | sz Bin = 0
9 | sz (Node t1 t2) = 1 + sz t1 + sz t2
10 |
--------------------------------------------------------------------------------
/tests/pos/T1198_2.hs:
--------------------------------------------------------------------------------
1 | module T1198_2 where
2 |
3 | {-@ data Tree [sz] @-}
4 | data Tree a = Bin | Node (Tree a)
5 |
6 | {-@ measure sz @-}
7 | sz :: Tree a -> Int
8 | sz Bin = 0
9 | sz (Node t1) = 1 + sz t1
10 |
--------------------------------------------------------------------------------
/tests/pos/T1198_3.hs:
--------------------------------------------------------------------------------
1 | module T1198_3 where
2 |
3 | {-@ data Tree [sz] @-}
4 | data Tree = Bin | Node Tree Tree
5 |
6 | {-@ measure sz @-}
7 | sz :: Tree -> Int
8 | sz Bin = 0
9 | sz (Node t1 t2) = 1 + sz t1 + sz t2
10 |
--------------------------------------------------------------------------------
/tests/pos/T1198_4.hs:
--------------------------------------------------------------------------------
1 | module T1198_4 where
2 |
3 | {-@ data Tree [sz] @-}
4 | data Tree a = Node (Tree a) (Tree a)
5 |
6 | {-@ measure sz @-}
7 | sz :: Tree a -> Int
8 | sz (Node t1 t2) = 1 + sz t1 + sz t2
9 |
--------------------------------------------------------------------------------
/tests/pos/T1267.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--max-case-expand=0" @-}
2 | {-@ LIQUID "--exactdc" @-}
3 |
4 | module T1267 where
5 |
6 | data ABC = A | B | C
7 |
8 | foo :: Int -> ABC -> ()
9 | foo 0 A = ()
10 | foo x A | x /= 0 = ()
11 | foo _ A = error " "
12 | foo _ t = ()
13 |
--------------------------------------------------------------------------------
/tests/pos/T1278.hs:
--------------------------------------------------------------------------------
1 | module T1278 where
2 |
3 | data List a = Nil | Cons a (List a)
4 |
5 | sz :: List a -> Int
6 | sz Nil = 0
7 | sz (Cons _ Nil) = 1
8 | sz (Cons _ (Cons _ l)) = 2 + sz l
9 |
--------------------------------------------------------------------------------
/tests/pos/T1286.hs:
--------------------------------------------------------------------------------
1 | module T1286 where
2 |
3 | {-@ fails :: {v:Bool | v} @-}
4 | fails = 'a' == 'a'
5 |
6 | {-@ ok :: {v:Bool | v} @-}
7 | ok = "a" == "a"
8 |
--------------------------------------------------------------------------------
/tests/pos/T1288.hs:
--------------------------------------------------------------------------------
1 |
2 | module T1288 where
3 |
4 | {-@ measure foo @-}
5 | foo :: () -> Int
6 | foo _ = 10
7 |
8 | {-@ blub :: {v:Int | v = 10} @-}
9 | blub = foo ()
10 |
--------------------------------------------------------------------------------
/tests/pos/T1289a.hs:
--------------------------------------------------------------------------------
1 |
2 | module T1289a where
3 |
4 | {-@ measure bintId @-}
5 | bintId :: Int -> Int
6 | bintId 0 = 0
7 | bintId x = 1
8 |
9 | {-@ zig :: n:Int -> { 0 <= bintId n && bintId n <= 1} @-}
10 | zig :: Int -> ()
11 | zig 0 = ()
12 | zig n = ()
13 |
14 |
--------------------------------------------------------------------------------
/tests/pos/T1461.hs:
--------------------------------------------------------------------------------
1 |
2 | module T1461 where
3 |
4 | import Data.List (sortBy)
5 | import qualified Data.List.NonEmpty as NE
6 |
7 | foo :: NE.NonEmpty a -> Int
8 | foo = NE.length
9 |
--------------------------------------------------------------------------------
/tests/pos/T1543.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--reflection" @-}
2 | module T1543 where
3 |
4 | foo :: (Int -> Int) -> (Int -> Int, ())
5 | {-@ foo :: f:(Int -> Int) -> (g::(Int -> Int),{v:() | f == g}) @-}
6 | foo f = (f,())
7 |
--------------------------------------------------------------------------------
/tests/pos/T1547.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--reflection" @-}
2 |
3 | module T1547 where
4 |
5 | {-@ myfst :: () -> {v:((a,b) -> a) | v == fst } @-}
6 | myfst :: () -> (a,b) -> a
7 | myfst _ = fst
8 |
--------------------------------------------------------------------------------
/tests/pos/T1556.hs:
--------------------------------------------------------------------------------
1 | module T1556 where
2 |
3 | {-@ type Alias a b = (a,b) @-}
4 | type Alias a b = (a,b)
5 |
6 | {-@ foo :: Alias (a,b) a @-}
7 | foo :: Alias (a,b) a
8 | foo = undefined
9 |
--------------------------------------------------------------------------------
/tests/pos/T1603.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--reflect" @-}
2 |
3 | module T1603 where
4 |
5 | {-@ reflect rAnd @-}
6 | rAnd :: Bool
7 | rAnd = and [True,False,True]
8 |
9 | {-@ reflect rOr @-}
10 | rOr :: Bool
11 | rOr = or [True,False,True]
12 |
13 |
--------------------------------------------------------------------------------
/tests/pos/T1642.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--reflection" @-}
2 | {-# LANGUAGE GADTs #-}
3 | {-# LANGUAGE KindSignatures #-}
4 |
5 | module T1642 where
6 |
7 | data A :: * -> * where
8 | A :: Eq a => a -> () -> A a
9 |
10 |
--------------------------------------------------------------------------------
/tests/pos/T1709.hs:
--------------------------------------------------------------------------------
1 | module T1709 where
2 |
3 | {-@ incr :: x:Int -> {v:Int | x < v } @-}
4 | incr :: Int -> Int
5 | incr x = x + 1
6 |
7 | {-@ fail decr @-}
8 | {-@ decr :: x:Int -> {v:Int | x < v } @-}
9 | decr :: Int -> Int
10 | decr x = x - 1
11 |
--------------------------------------------------------------------------------
/tests/pos/T2404.hs:
--------------------------------------------------------------------------------
1 | module T2404 where
2 |
3 |
4 | {-@ lists :: (l::Int, {v:[Char] | len v = l}, {v:[Int] | len v = l}) @-}
5 | lists :: (Int, [Char], [Int])
6 | lists = (3, "abc", [7, 8, 9])
--------------------------------------------------------------------------------
/tests/pos/T531.hs:
--------------------------------------------------------------------------------
1 | module T531 where
2 |
3 | {-@
4 | data Foo = Foo { _getFoo :: Int }
5 | @-}
6 | data Foo = Foo { _getFoo :: Int }
7 |
--------------------------------------------------------------------------------
/tests/pos/T598.hs:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE DeriveGeneric #-}
2 |
3 | module T598 where
4 |
5 | import GHC.Generics (Generic)
6 | import Control.DeepSeq (NFData(..))
7 |
8 | data Point = Point
9 | { x :: Int
10 | } deriving (Generic)
11 |
12 | instance NFData Point
13 |
--------------------------------------------------------------------------------
/tests/pos/TagBinder.hs:
--------------------------------------------------------------------------------
1 | module TagBinder () where
2 |
3 | data Foo a = F Int a
4 |
5 | {-@ data Foo a = F {tag :: Int, f :: a} @-}
6 |
7 | foo = F
8 |
--------------------------------------------------------------------------------
/tests/pos/TerminationNum.hs:
--------------------------------------------------------------------------------
1 | module TerminationNum where
2 |
3 | {-@ fak2 :: (Ord a, Eq a, Num a) => y:{x: a | x >= 0} -> a /[y]@-}
4 | fak2 :: (Ord a, Eq a, Num a) => a -> a
5 | fak2 0 = 1
6 | fak2 x = x * fak2 (x - 1)
7 |
--------------------------------------------------------------------------------
/tests/pos/Test0.hs:
--------------------------------------------------------------------------------
1 | module Test0 () where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 | myabs x = if x > 0 then x else (0 - x)
6 |
7 | prop_abs = let n1 = choose 0 in
8 | liquidAssertB ((myabs n1) >= 0)
9 |
--------------------------------------------------------------------------------
/tests/pos/Test00.hs:
--------------------------------------------------------------------------------
1 | module Test00 () where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 |
6 | prop_abs :: Bool
7 | prop_abs = if x > 0 then baz x else False
8 | where
9 | x = choose 0
10 |
11 | baz gooberding = liquidAssertB (gooberding >= 0)
12 |
--------------------------------------------------------------------------------
/tests/pos/Test000.hs:
--------------------------------------------------------------------------------
1 | module Test000 () where
2 |
3 | -- import Language.Haskell.Liquid.Prelude
4 | {-@ toss :: Bool @-}
5 | toss :: Bool
6 | toss = (undefined 0) > 10
7 |
8 |
--------------------------------------------------------------------------------
/tests/pos/Test00_old.hs:
--------------------------------------------------------------------------------
1 | module Test00_old () where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 | x = choose 0
6 |
7 | prop_abs = if x `gt` 0 then baz x else False
8 |
9 | baz :: Int -> Bool
10 | baz z = liquidAssertB (z `geq` 0)
11 |
12 |
--------------------------------------------------------------------------------
/tests/pos/Test00b.hs:
--------------------------------------------------------------------------------
1 | module Test00b () where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 | x = choose 0
6 |
7 | foo x = x
8 |
9 | prop_abs = if x > 0 then baz (foo x) else False
10 |
11 | baz :: (Num a, Ord a) => a -> Bool
12 | baz z = liquidAssertB (z > 0)
13 |
--------------------------------------------------------------------------------
/tests/pos/Test1.hs:
--------------------------------------------------------------------------------
1 | module Test1 () where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 | myabs x = if x > 0 then x else 0 - x
6 |
7 | n = choose 0
8 |
9 | prop_absf = liquidAssertB ((myabs n) >= 0)
10 |
--------------------------------------------------------------------------------
/tests/pos/Test2.hs:
--------------------------------------------------------------------------------
1 | module Test2 () where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 | myabs x = if x > 0 then x else 0 - x
6 |
7 | n = choose 0
8 |
9 | prop_absf =
10 | let zz = (myabs n) >= 0 in
11 | liquidAssertB zz
12 |
--------------------------------------------------------------------------------
/tests/pos/Test761.hs:
--------------------------------------------------------------------------------
1 | module Test761 () where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 | x = choose 0
6 |
7 | prop_abs :: Bool
8 | prop_abs = if x > 0 then baz x else False
9 |
10 | baz gooberding = liquidAssertB (gooberding >= 0)
11 |
--------------------------------------------------------------------------------
/tests/pos/TokenType.hs:
--------------------------------------------------------------------------------
1 | module TokenType where
2 |
3 |
4 | data TokenType = Foo | CChar
5 |
6 |
7 | {-@ bar :: Char @-}
8 | bar :: Char
9 | bar = undefined
10 |
--------------------------------------------------------------------------------
/tests/pos/TopLevel.hs:
--------------------------------------------------------------------------------
1 | module TopLevel (bar) where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 | foo b = liquidAssertB b
6 |
7 | bar = foo True
8 |
--------------------------------------------------------------------------------
/tests/pos/TyExpr.hs:
--------------------------------------------------------------------------------
1 | module TyExpr where
2 |
3 | {-@ type Range Lo Hi = {v:Int | Lo <= v && v < Hi} @-}
4 |
5 | {-@ bow :: Range 0 100 @-}
6 | bow :: Int
7 | bow = 12
8 |
--------------------------------------------------------------------------------
/tests/pos/TypeAlias.hs:
--------------------------------------------------------------------------------
1 | module TypeAlias where
2 |
3 | data Foo a b = Foo a b
4 |
5 | type Bar = Foo Int
6 |
7 |
8 | {-@ foo :: String @-}
9 | foo :: String
10 | foo = "mpla"
11 |
12 | {-@ bar :: Bar {v:Int | v = 2} @-}
13 | bar :: Bar Int
14 | bar = Foo 1 2
15 |
--------------------------------------------------------------------------------
/tests/pos/Tyvar.hs:
--------------------------------------------------------------------------------
1 | module Tyvar () where
2 |
3 | {-@ foo :: Eq b => a -> b -> a @-}
4 | foo :: Eq b => a -> b -> a
5 | foo = undefined
6 |
--------------------------------------------------------------------------------
/tests/pos/UnboxedTuples.hs:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE MagicHash #-}
2 | {-# LANGUAGE UnboxedTuples #-}
3 | module UnboxedTuples where
4 |
5 | import GHC.Int
6 |
7 | foo = let (# x, y #) = (# 1#, 1# #) in I# x
8 |
9 |
--------------------------------------------------------------------------------
/tests/pos/Words.hs:
--------------------------------------------------------------------------------
1 |
2 | module Words where
3 |
4 | import Data.Word
5 |
6 | {-@ foo :: {v:Word | v = 4} @-}
7 | foo :: Word
8 | foo = 4
9 |
--------------------------------------------------------------------------------
/tests/pos/Words1.hs:
--------------------------------------------------------------------------------
1 | module Words1 where
2 |
3 | import Data.Word
4 |
5 | main = print (quotRem (4 :: Word8) 128)
6 |
--------------------------------------------------------------------------------
/tests/pos/ZipW2.hs:
--------------------------------------------------------------------------------
1 | module ZipW2 where
2 |
3 |
4 | foo :: [Int] -> [Int]
5 | foo zs = zipWith (+) zs zs
6 |
--------------------------------------------------------------------------------
/tests/pos/test000.hs.hquals:
--------------------------------------------------------------------------------
1 | qualif Foo(v: Int): v = 10
2 |
--------------------------------------------------------------------------------
/tests/reflect/pos/ReflString0.hs:
--------------------------------------------------------------------------------
1 |
2 | -- cf https://github.com/ucsd-progsys/liquidhaskell/issues/1044
3 |
4 | module ReflString0 where
5 |
6 | {-@ reflect foo @-}
7 | {-@ foo :: x:_ -> {v:_ | v <=> x == "cat"} @-}
8 | foo :: String -> Bool
9 | foo x = x == "cat"
10 |
11 |
--------------------------------------------------------------------------------
/tests/relational/neg/Abs.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Abs where
3 |
4 | abs :: Int -> Int
5 | abs x = if x < 0 then -x else x
6 |
7 | {-@ relational abs ~ abs :: {x1:Int -> Int ~ x2:Int -> Int
8 | | x1 < x2 :=> r1 x1 < r2 x2} @-}
9 |
--------------------------------------------------------------------------------
/tests/relational/pos/Axiom.hs:
--------------------------------------------------------------------------------
1 | module Axiom where
2 |
3 | foo :: Int -> Int
4 | foo x = x
5 |
6 | bar :: Int -> Int
7 | bar x = x
8 |
9 | {-@ relational foo ~ bar :: { x1:Int -> Int ~ x2:Int -> Int
10 | | x1 = x2 |- true :=> r1 x1 = r2 x2 } @-}
11 |
--------------------------------------------------------------------------------
/tests/spec/pos/BS1.hs:
--------------------------------------------------------------------------------
1 |
2 | import Data.ByteString.Lazy as LB
3 |
4 |
5 | foo z = LB.pack z
6 |
7 | {-@ bar :: _ -> {v:_ | v >= 0} @-}
8 | bar z = LB.length z
9 |
10 |
--------------------------------------------------------------------------------
/tests/spec/pos/Compose.hs:
--------------------------------------------------------------------------------
1 | {-@ incr :: x:_ -> {v:_ | v = x + 1} @-}
2 | incr :: Int -> Int
3 | incr x = x + 1
4 |
5 | {-@ incr2 :: x:_ -> {v:_ | v = x + 2} @-}
6 | incr2 = incr . incr
7 |
8 |
--------------------------------------------------------------------------------
/tests/spec/pos/Compose1.hs:
--------------------------------------------------------------------------------
1 | -- override the input spec
2 | {-@ assume GHC.Base.. :: (b -> c) -> (a -> b) -> a -> c @-}
3 |
4 | {-@ incr :: Nat -> Nat @-}
5 | incr :: Int -> Int
6 | incr x = x + 1
7 |
8 | {-@ incr2 :: Nat -> Nat @-}
9 | incr2 = incr . incr
10 |
--------------------------------------------------------------------------------
/tests/stack_driver/driver.hs:
--------------------------------------------------------------------------------
1 | import Test.Build
2 | import Test.Options
3 |
4 | main :: IO ()
5 | main = program stackTestEnv stackRun =<< parseOptions
6 |
--------------------------------------------------------------------------------
/tests/tasty/Main.hs:
--------------------------------------------------------------------------------
1 | module Main where
2 |
3 | import Test.Tasty
4 | import ErrorFilterReportTests
5 |
6 | main :: IO ()
7 | main = defaultMain tests
8 |
9 | tests :: TestTree
10 | tests = testGroup "Tests"
11 | errorFilterReportTests
12 |
--------------------------------------------------------------------------------
/tests/terminate/neg/Even.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Even () where
3 |
4 | {-@ isEven, isOdd :: Nat -> Bool @-}
5 | isEven :: Int -> Bool
6 | isEven 0 = True
7 | isEven n = isOdd $ n
8 |
9 | isOdd 0 = False
10 | isOdd m = isEven $ m - 1
11 |
--------------------------------------------------------------------------------
/tests/terminate/neg/Rename.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Rename where
3 |
4 | foo x = let bar = foo in bar x
5 |
--------------------------------------------------------------------------------
/tests/terminate/neg/T1404_0.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module T1404_0 where
3 |
4 | {-@ absurd :: {False} @-}
5 | absurd :: a
6 | absurd = let loop x = loop x in
7 | loop ()
8 |
9 | {-@ oneIsTwo :: {1 == 2} @-}
10 | oneIsTwo :: ()
11 | oneIsTwo = absurd
12 |
--------------------------------------------------------------------------------
/tests/terminate/neg/T745.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 |
3 | module T745 where
4 |
5 | foo :: () -> ()
6 | foo () = foo ()
7 |
--------------------------------------------------------------------------------
/tests/terminate/neg/Term00.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | -- NO PRAGMA version of tests/pos/pragma0.hs
3 | -- an obviously non-terminating function
4 |
5 | module Term00 where
6 |
7 |
8 | zoo :: Int -> Int
9 | zoo 0 = 0
10 | zoo x = zoo x
11 |
--------------------------------------------------------------------------------
/tests/terminate/neg/Total00.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Total00 where
3 |
4 | foo :: Int -> Int
5 | foo 0 = 0
6 | foo 1 = 1
7 |
--------------------------------------------------------------------------------
/tests/terminate/neg/Total02.hs:
--------------------------------------------------------------------------------
1 | {-# OPTIONS_GHC -Wno-missing-fields #-}
2 | {-@ LIQUID "--expect-any-error" @-}
3 | -- test recConError
4 | module Total02 where
5 |
6 | data Foo = Foo {a :: Int, b :: Int}
7 |
8 | foo :: Foo
9 | foo = Foo {a = 1}
10 |
--------------------------------------------------------------------------------
/tests/terminate/pos/List00_str.hs:
--------------------------------------------------------------------------------
1 |
2 | module List00_str where
3 |
4 | lmap f [] = []
5 | lmap f (x:xs) = f x : lmap f xs
6 |
7 | lref = go []
8 | where
9 | go acc [] = acc
10 | go acc (x:xs) = go (x:acc) xs
11 |
--------------------------------------------------------------------------------
/tests/terminate/pos/List05_local.hs:
--------------------------------------------------------------------------------
1 |
2 | module List05_local where
3 |
4 | rev = go []
5 | where
6 | go :: [a] -> [a] -> [a]
7 | go acc [] = acc
8 | go acc (x:xs) = go (x:acc) xs
9 |
--------------------------------------------------------------------------------
/tests/terminate/pos/StructSecondArg.hs:
--------------------------------------------------------------------------------
1 |
2 | module StructSecondArg where
3 |
4 | data Peano = Z | S Peano
5 |
6 | addToInt :: Int -> Peano -> Int
7 | addToInt n Z = n
8 | addToInt n (S p) = addToInt (n + 1) p
9 |
--------------------------------------------------------------------------------
/tests/terminate/pos/Sum.hs:
--------------------------------------------------------------------------------
1 |
2 | module Sum where
3 |
4 | ssum :: Num a => [a] -> a
5 | ssum [] = 0
6 | ssum [x] = x
7 | ssum (x:xs) = x + ssum xs
8 |
--------------------------------------------------------------------------------
/tests/terminate/pos/T1396_0.hs:
--------------------------------------------------------------------------------
1 | module T1396_0 where
2 |
3 | data Map k
4 | = Leaf
5 | | Node k (Map k)
6 |
7 | foo :: (Ord k) => Map k -> k -> ()
8 | foo (Node k l) key
9 | | key == k = ()
10 | | otherwise = foo l key
11 | foo Leaf _ = ()
12 |
--------------------------------------------------------------------------------
/tests/terminate/pos/Term00.hs:
--------------------------------------------------------------------------------
1 |
2 | module Term00 where
3 |
4 | zoo :: Int -> Int
5 | zoo n
6 | | 0 < n = n + zoo (n-1)
7 | | otherwise = 0
8 |
--------------------------------------------------------------------------------
/tests/tmp/T777.hs:
--------------------------------------------------------------------------------
1 | module Goo where
2 |
3 | {-@ instance measure glub @-}
4 | glub :: [Int] -> Bool
5 | glub [] = True
6 | glub (x:xs) = ((x > 0) && (glub xs))
7 |
--------------------------------------------------------------------------------
/tests/todo/AALib.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--exactdc" @-}
2 |
3 | module AALib where
4 |
5 | data Foo a b = Foo {fooA :: a, fooB :: b} | Bar
6 |
7 |
8 |
9 | {-@ measure isFoo @-}
10 | isFoo :: Foo a b -> Bool
11 | isFoo (Foo _ _)= True
12 | isFoo Bar = False
13 |
--------------------------------------------------------------------------------
/tests/todo/AbsRef.hs:
--------------------------------------------------------------------------------
1 | module AbsRef where
2 |
3 | data F a = F a
4 | {-@ data F a Prop> = F (x :: a)@-}
5 |
6 |
7 |
8 | {-@ foo :: F <{\v -> true}, {\v -> true}> Int @-}
9 | foo :: F Int
10 | foo = F 5
--------------------------------------------------------------------------------
/tests/todo/Aliases.hs:
--------------------------------------------------------------------------------
1 | module Foo where
2 |
3 | {-@ type Foos = [Foo] @-}
4 |
5 | {-@ type Foo = {v:Int | vv > 0} @-}
6 |
7 | foo :: [Int]
8 | {-@ foo :: Foos @-}
9 | foo = []
10 |
--------------------------------------------------------------------------------
/tests/todo/AxiomBug.hs:
--------------------------------------------------------------------------------
1 | module Nats where
2 |
3 | {-@ poo :: {v:Int | v == 0 } @-}
4 | poo :: Int
5 | poo = 1
6 |
7 | data Peano = Z
8 |
9 | {-@ axiomatize zero @-}
10 | zero :: Peano
11 | zero = Z
12 |
13 | goober :: String
14 | goober = "I am a cat"
15 |
--------------------------------------------------------------------------------
/tests/todo/CheckProofs.hs:
--------------------------------------------------------------------------------
1 | import Language.Haskell.Liquid.ProofCombinators
2 |
3 |
4 | {-@ foo :: () -> Proof @-}
5 | foo :: () -> Proof
6 | foo _
7 | = 1
8 | ==. 2
9 | ==. 3
10 | *** QED
--------------------------------------------------------------------------------
/tests/todo/Class4Import.hs:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE ScopedTypeVariables #-}
2 | {-@ LIQUID "--no-termination" @-}
3 |
4 | module Class4Import where
5 |
6 | import Class4Lib
7 |
8 | instance Frog () where
9 |
--------------------------------------------------------------------------------
/tests/todo/Class4Lib.hs:
--------------------------------------------------------------------------------
1 | module Class4Lib where
2 |
3 | {-@ class Pos s where
4 | allPos :: s a -> Bool
5 | @-}
6 | class Pos s where
7 | allPos :: s a -> Bool
8 |
--------------------------------------------------------------------------------
/tests/todo/CmpBug.hs:
--------------------------------------------------------------------------------
1 | module Fixme where
2 |
3 | zipWith :: (Char -> Char -> a) -> b -> b -> [a]
4 | zipWith f = zipWith' ((. w2c) . f . w2c)
5 |
6 | zipWith' :: (b -> b -> a) -> c -> c -> [a]
7 | zipWith' = undefined
8 |
9 | w2c :: a -> Char
10 | w2c = undefined
--------------------------------------------------------------------------------
/tests/todo/FldBug.hs:
--------------------------------------------------------------------------------
1 | module Foo where
2 |
3 | {-@ data Foo = F { thing :: Nat } @-}
4 | data Foo = F { thing :: Int }
5 |
6 |
7 | {-@ bar :: Foo -> Nat @-}
8 | bar z = thing z
9 |
10 |
11 |
--------------------------------------------------------------------------------
/tests/todo/ImportReflected.hs:
--------------------------------------------------------------------------------
1 | module ImportedReflect where
2 |
3 | import BLib
4 |
5 | {-@ theorem :: x:Bar -> {bar x = bar x} @-}
6 | theorem :: Bar -> ()
7 | theorem _ = ()
8 |
--------------------------------------------------------------------------------
/tests/todo/IncrLib.hs:
--------------------------------------------------------------------------------
1 | module IncrLib (incr) where
2 |
3 |
4 | {-@ axiomatize incr @-}
5 | incr :: Int -> Int
6 | incr x = x + 1
7 |
--------------------------------------------------------------------------------
/tests/todo/InfixClient.hs:
--------------------------------------------------------------------------------
1 |
2 | {-@ LIQUID "--ple" @-}
3 |
4 | import InfixLib
5 |
6 | -- GRRR...
7 | {- infix +++ @-}
8 |
9 | {-@ silly :: x:Int -> { x +++ 10 == x + 20} @-}
10 | silly :: Int -> ()
11 | silly _ = ()
12 |
13 |
--------------------------------------------------------------------------------
/tests/todo/InfixLib.hs:
--------------------------------------------------------------------------------
1 | module InfixLib where
2 |
3 | {-@ infix +++ @-}
4 | {-@ reflect +++ @-}
5 | (+++) :: Int -> Int -> Int
6 | a +++ b = a + b + 10
7 |
8 |
--------------------------------------------------------------------------------
/tests/todo/Invariants2.hs:
--------------------------------------------------------------------------------
1 | module Invariants where
2 |
3 | {-@ measure sum :: [Int] -> Nat
4 | sum() = 0
5 | sum(x:xs) = x + (sum xs)
6 | @-}
7 |
8 |
9 | {-@ good :: xs:[Int] -> {v:[Int] | (sum xs) >= 0} @-}
10 | good :: [Int] -> [Int]
11 | good x = x
12 |
--------------------------------------------------------------------------------
/tests/todo/LocalSpecImport.hs:
--------------------------------------------------------------------------------
1 | module LocalSpecImport where
2 |
3 | import LocalSpecLib
4 |
5 | {-@ baz :: Nat -> Nat @-}
6 | baz :: Int -> Int
7 | baz x = x
8 |
--------------------------------------------------------------------------------
/tests/todo/LocalSpecTyVar.hs:
--------------------------------------------------------------------------------
1 | module LocalSpecTyVar where
2 |
3 | foo = go
4 | where
5 | {-@ go :: xs:[a] -> {v:[a] | (len v) > (len xs)} @-}
6 | go [] = []
7 | go (x:xs) = x : go xs
8 |
--------------------------------------------------------------------------------
/tests/todo/Measure.hs:
--------------------------------------------------------------------------------
1 | module Measure where
2 |
3 |
4 |
5 | data Foo a = F a
6 |
7 | {-@ measure foo :: a -> Int @-}
8 |
9 | {-@ measure bar :: (Foo a) -> Bool
10 | bar(F xs) = (foo xs) @-}
11 |
--------------------------------------------------------------------------------
/tests/todo/MeasureImport.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--exactdc" @-}
2 |
3 | import AALib
4 |
5 | {-@ lazy bar @-}
6 | {-@ bar :: Foo a b -> {v:Foo a b | isFoo v} @-}
7 | bar :: Foo a b -> Foo a b
8 | bar x | isFoo x
9 | = x
10 | bar x = bar x
11 |
--------------------------------------------------------------------------------
/tests/todo/MissingAbsRefArgs.hs:
--------------------------------------------------------------------------------
1 | module Fixme where
2 |
3 |
4 | -- foo :: [a] -> ()
5 | {- foo :: [{v:a | v = 5}] -> () @-}
6 | -- foo _ = ()
7 |
8 |
9 | bar :: a -> b -> a
10 | {-@ bar :: forall b -> Bool>. x:a -> {xx:b | xx > xx} -> a @-}
11 | bar x y = x
12 |
--------------------------------------------------------------------------------
/tests/todo/NoInlines.hs:
--------------------------------------------------------------------------------
1 | module Foo where
2 |
3 | foo :: IO ()
4 | foo =
5 | if True
6 | then return ()
7 | else return ()
8 |
--------------------------------------------------------------------------------
/tests/todo/Parse.hs:
--------------------------------------------------------------------------------
1 | module Fixme where
2 |
3 |
4 | data L a
5 | = C {x :: a , xs :: L a}
6 |
7 | {-@ data L a
8 | = C { x:: a , xs :: L a}
9 | @-}
10 |
--------------------------------------------------------------------------------
/tests/todo/Parse1.hs:
--------------------------------------------------------------------------------
1 | module BadParse where
2 |
3 |
4 | {-@ test :: v:a -> (r:a, l:a) @-}
5 | test x = (x, x)
6 |
--------------------------------------------------------------------------------
/tests/todo/QualifCheck.hs:
--------------------------------------------------------------------------------
1 | module Foo where
2 |
3 | {-@ qualif Foo(v:a, x:List a) : (Set_mem v (listElts xs)) @-}
4 |
5 | {-@ foo :: Nat -> Nat @-}
6 | foo :: Int -> Int
7 | foo x = x
8 |
9 |
--------------------------------------------------------------------------------
/tests/todo/RefinedData.hs:
--------------------------------------------------------------------------------
1 | module Foo where
2 |
3 | data F = F {f1 :: Int, f2 :: Bool}
4 |
5 | {-@ data F = F {f2 :: Bool, f1 :: Int} @-}
6 |
--------------------------------------------------------------------------------
/tests/todo/SMTDiverge.hs:
--------------------------------------------------------------------------------
1 | module Chunks where
2 |
3 | {-@ go :: Nat -> {v:Int | 1 < v} -> () @-}
4 | go :: Int -> Int -> ()
5 | go d n
6 | | d <= n = ()
7 | | otherwise = go (d `div` n) n
--------------------------------------------------------------------------------
/tests/todo/T1037A.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--higherorder" @-}
2 | {-@ LIQUID "--exactdc" @-}
3 |
4 | module T1037A where
5 |
6 | import Language.Haskell.Liquid.ProofCombinators
7 | import qualified T1037C
8 | import qualified T1037B
9 |
10 |
--------------------------------------------------------------------------------
/tests/todo/T1037C.hs:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE TypeFamilies #-}
2 | module T1037C where
3 |
4 | import Language.Haskell.Liquid.ProofCombinators
5 |
6 | class Generic a where
7 | type Rep a :: * -> *
8 | from :: a -> Rep a x
9 | to :: Rep a x -> a
10 |
--------------------------------------------------------------------------------
/tests/todo/T1278.1.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--exact-data-cons" @-}
2 | module Term where
3 |
4 | {-@ data Tree [sz] @-}
5 | data Tree a = Tip | Node (Tree a, Tree a)
6 |
7 | {-@ measure sz @-}
8 | sz :: Tree a -> Int
9 | sy Tip = 0
10 | sz (Node (t1, t2)) = 1 + sz t1 + sz t2
11 |
--------------------------------------------------------------------------------
/tests/todo/T1326B.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--reflection" @-}
2 |
3 | module T1326B where
4 |
5 | import T1326A
6 |
7 | data Program l = PHole | Pg {pTerm :: Term l }
8 |
--------------------------------------------------------------------------------
/tests/todo/T1326C.hs:
--------------------------------------------------------------------------------
1 | module T1326C where
2 |
3 | import T1326B
4 |
5 | {-@ measure terminates :: Program l -> Bool @-}
6 |
--------------------------------------------------------------------------------
/tests/todo/T765.hs:
--------------------------------------------------------------------------------
1 | -- | issue #765 we get complete gibberish for inferred types
2 | -- * nothing for 'gunk'
3 | -- * {v = 1} for `z`
4 |
5 | module Bar where
6 |
7 | {-@ bar :: Nat -> Nat @-}
8 | bar :: Int -> Int
9 | bar z = let gunk = z + 1
10 | in gunk
11 |
--------------------------------------------------------------------------------
/tests/todo/UnboundSigs.hs:
--------------------------------------------------------------------------------
1 | module DependeTypes where
2 |
3 |
4 |
5 | data MI s
6 | = Small { mi_input :: String }
7 |
8 |
9 | {-@ Small :: forall s. {v:String | s == v } -> MI s @-}
10 |
--------------------------------------------------------------------------------
/tests/todo/UnboundVarInAssume1.hs:
--------------------------------------------------------------------------------
1 | a :: Int
2 | a = 0
3 |
4 | {-@ assume b :: { b : Int | a < b } @-}
5 | b :: Int
6 | b = 1
7 |
8 | {-@
9 | f :: a : Int -> { b : Int | a < b } -> ()
10 | @-}
11 | f :: Int -> Int -> ()
12 | f _ _ = ()
13 |
14 | g :: ()
15 | g = f a b
--------------------------------------------------------------------------------
/tests/todo/UnfoldDataCons.hs:
--------------------------------------------------------------------------------
1 |
2 | {-@ boo :: [{v:a | false }] -> {v:[a] | len v == 0 } @-}
3 | boo :: [a] -> [a]
4 | boo [] = []
5 | boo (x:xs) = (x:xs)
6 |
7 |
8 | {-@ foo :: [{v:a | false }] -> {v:[a] | len v == 0 } @-}
9 | foo :: [a] -> [a]
10 | foo x = x
11 |
--------------------------------------------------------------------------------
/tests/todo/Unsound.hs:
--------------------------------------------------------------------------------
1 | module Unsound where
2 |
3 | {-@ assume magic :: {v:() | false} @-}
4 | magic :: ()
5 | magic = undefined
6 |
7 | bar = head []
--------------------------------------------------------------------------------
/tests/todo/UseBound.hs:
--------------------------------------------------------------------------------
1 | module UseBound where
2 |
3 | import ImportBoundLib
4 |
5 | -- This crashes because the type of `by` has a bound Chain that
6 | -- is unknown at import
7 |
8 | myby = by
9 |
--------------------------------------------------------------------------------
/tests/todo/aliasConst.hs:
--------------------------------------------------------------------------------
1 | module Foo where
2 |
3 | -- TODO: Expressions inside applications of type and predicate aliases.
4 |
5 | {-@ predicate Rng Lo V Hi = (Lo <= V && V < Hi) @-}
6 |
7 | {-@ bog :: {v:Int | (Rng 0 v 10)} @-}
8 | bog :: Int
9 | bog = 5
10 |
--------------------------------------------------------------------------------
/tests/todo/cases.hs:
--------------------------------------------------------------------------------
1 | module Zoo where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 | data L a = C a (L a) | N | C2 a a (L a)
6 |
7 | bob (C x _) = x
8 | bob _ = liquidError "asdasd"
9 |
--------------------------------------------------------------------------------
/tests/todo/err12.hs:
--------------------------------------------------------------------------------
1 | module BareCrash where
2 |
3 | {-@ measure isReal :: Space -> Prop
4 | isReal (Null) = false
5 | isReal (Rreal pv n) = true
6 | @-}
7 |
8 |
9 | data Space = Null | Real Int Int
10 | deriving (Show, Eq)
11 |
--------------------------------------------------------------------------------
/tests/todo/err13.hs:
--------------------------------------------------------------------------------
1 | {-@ plus :: x:a -> y:a -> {v:a | v = x} @-}
2 | plus :: a -> a -> a
3 | plus = undefined
--------------------------------------------------------------------------------
/tests/todo/err4.hs:
--------------------------------------------------------------------------------
1 | -- | Error Message Test: liquid type error
2 |
3 | module Err0 where
4 |
5 | {-@ zonk :: {v:Int | v = 0} @-}
6 | zonk = (12 :: Int)
7 |
8 | {-@ tonk :: {v:Int | v = 0} @-}
9 | tonk = (45 :: Int)
10 |
--------------------------------------------------------------------------------
/tests/todo/err5.hs:
--------------------------------------------------------------------------------
1 | module Test0 where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 | x = choose 0
6 |
7 | prop_abs = if x > 0 then baz x else False
8 |
9 | gob z = liquidAssertB (z `geq` 10)
10 |
11 | baz z = liquidAssertB (z `geq` 100)
12 |
--------------------------------------------------------------------------------
/tests/todo/err6.hs:
--------------------------------------------------------------------------------
1 | -- | Error Message Test: liquid type error
2 |
3 | module Err0 where
4 |
5 | {-@ zonk :: {v:Int | v = z} @-}
6 | zonk = (12 :: Int)
7 |
8 |
9 |
--------------------------------------------------------------------------------
/tests/todo/err7.hs:
--------------------------------------------------------------------------------
1 | -- | Error Message Test: liquid type error
2 |
3 | module Err0 where
4 |
5 | {-@ tonk :: {v:Int | (Prop v) = v } @-}
6 | tonk = (12 :: Int)
7 |
8 |
--------------------------------------------------------------------------------
/tests/todo/err8.hs:
--------------------------------------------------------------------------------
1 | module Blank where
2 |
3 | -- instead of "ERROR ERROR ERROR" fail GRACEFULLY when spec has unknown var
4 |
5 | {-@ zoo :: Nat @-}
6 |
7 | {-@ x :: Poo @-}
8 | x :: Int
9 | x = 12
10 |
--------------------------------------------------------------------------------
/tests/todo/false.hs:
--------------------------------------------------------------------------------
1 |
2 | {-@ diverge :: Int -> {false} @-}
3 | {-@ lazy diverge @-}
4 | diverge :: Int -> Int
5 | diverge n = diverge n
6 |
7 | {-@ one_eq_two :: { 1 == 2 } @-}
8 | one_eq_two = diverge 0
9 |
--------------------------------------------------------------------------------
/tests/todo/funrec.hs:
--------------------------------------------------------------------------------
1 | module Foo () where
2 |
3 | data F a = F { f :: Int -> a }
4 |
5 | {-@ data F a = F { f :: Nat -> a } @-}
6 |
--------------------------------------------------------------------------------
/tests/todo/intP.hs:
--------------------------------------------------------------------------------
1 | module Qoo where
2 |
3 | {-@ intid :: forall Bool>. ST
sip @-}
8 | foo :: ST s
9 | foo = S (\s -> s)
10 |
--------------------------------------------------------------------------------
/tests/app/Main.hs:
--------------------------------------------------------------------------------
1 | module Main where
2 |
3 | main :: IO ()
4 | main = putStrLn "Hello, Haskell!"
5 |
--------------------------------------------------------------------------------
/tests/basic/neg/Inc02.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Inc02 where
3 |
4 | {-@ inc :: {v:Int | v >= 0} -> {v:Int | v >= 0} @-}
5 | inc :: Int -> Int
6 | inc x = x - 1
7 |
--------------------------------------------------------------------------------
/tests/basic/neg/Inc03.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Inc03 where
3 |
4 | {-@ type NN = {v:Int | v <= 0 } @-}
5 |
6 | {-@ inc :: NN -> NN @-}
7 | inc :: Int -> Int
8 | inc x = x + 1
9 |
--------------------------------------------------------------------------------
/tests/basic/neg/Inc04.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Inc04 where
3 |
4 | import Inc04Lib
5 |
6 | -- Check that the alias and SIG for down are getting imported
7 | {-@ test1 :: NN -> NN @-}
8 | test1 :: Int -> Int
9 | test1 x = down x
10 |
11 |
--------------------------------------------------------------------------------
/tests/basic/neg/List00.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module List00 where
3 |
4 | data List a = Emp
5 |
6 | {-@ foo :: List a -> { v : Int | 200 <= v } @-}
7 | foo :: List a -> Int
8 | foo Emp = 100
9 |
--------------------------------------------------------------------------------
/tests/basic/neg/Poly00.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Poly00 where
3 |
4 | {-@ zoo :: x:a -> {v:a | v /= x} @-}
5 | zoo :: goober -> goober
6 | zoo x = x
7 |
--------------------------------------------------------------------------------
/tests/basic/pos/Alias00.hs:
--------------------------------------------------------------------------------
1 | module Alias00 where
2 |
3 | {-@ type RealUp Thing = {v:Int | Thing < v} @-}
4 |
5 | {-@ type Up Paw = RealUp Paw @-}
6 |
7 | {-@ inc :: x:Int -> (Up x) @-}
8 | inc :: Int -> Int
9 | inc x = x + 1
10 |
--------------------------------------------------------------------------------
/tests/basic/pos/Alias01.hs:
--------------------------------------------------------------------------------
1 | module Alias01 where
2 |
3 | {-@ predicate LessThan Thing V = Thing < V @-}
4 |
5 | {-@ inc :: x:Int -> {v:Int | LessThan x v} @-}
6 | inc :: Int -> Int
7 | inc x = x + 1
8 |
--------------------------------------------------------------------------------
/tests/basic/pos/Alias02.hs:
--------------------------------------------------------------------------------
1 | module Alias02 where
2 |
3 | {-@ predicate Less X Y = X < Y @-}
4 |
5 | {-@ inc :: x:Int -> {v:Int | Less x v} @-}
6 | inc :: Int -> Int
7 | inc x = x + 1
8 |
--------------------------------------------------------------------------------
/tests/basic/pos/Alias03.hs:
--------------------------------------------------------------------------------
1 | module Alias03 where
2 |
3 | {-@ type Less X = {v:Int | X < v} @-}
4 | {-@ data Zoo = Z { zA :: Int, zB :: Less zA } @-}
5 |
6 | data Zoo = Z { zA :: Int, zB :: Int }
7 |
8 | test :: Int -> Zoo
9 | test x = Z x (x + 1)
10 |
11 |
--------------------------------------------------------------------------------
/tests/basic/pos/Alias04.hs:
--------------------------------------------------------------------------------
1 | module Alias04 where
2 |
3 | {-@ predicate Less X Y = X < Y @-}
4 |
5 | {-@ data Zoo = Z { zA :: Int, zB :: {v:Int | Less zA v} } @-}
6 |
7 | data Zoo = Z { zA :: Int, zB :: Int }
8 |
9 | test :: Int -> Zoo
10 | test x = Z x (x + 1)
11 |
12 |
--------------------------------------------------------------------------------
/tests/basic/pos/AssmRefl02A.hs:
--------------------------------------------------------------------------------
1 | -- | Assume reflect import test
2 | {-@ LIQUID "--reflection" @-}
3 | {-@ LIQUID "--ple" @-}
4 |
5 | module AssmRefl02A where
6 |
7 | foobar :: Int -> Bool
8 | foobar n = n `mod` 2 <= 4
--------------------------------------------------------------------------------
/tests/basic/pos/Float.hs:
--------------------------------------------------------------------------------
1 | module Float where
2 |
3 |
4 | {-@ roxette :: {v:Float | v > 0} @-}
5 | roxette :: Float
6 | roxette = 0.014
7 |
8 | cmp :: Bool
9 | cmp = roxette > 0
10 |
--------------------------------------------------------------------------------
/tests/basic/pos/Inc00.hs:
--------------------------------------------------------------------------------
1 | -- | test if basic LH pipeline is functioning
2 |
3 | module Inc00 where
4 |
5 | inc :: Int -> Int
6 | inc x = x + 1
7 |
--------------------------------------------------------------------------------
/tests/basic/pos/Inc02.hs:
--------------------------------------------------------------------------------
1 | module Inc02 where
2 |
3 | {-@ inc :: {v:Int | v >= 0} -> {v:Int | v >= 0} @-}
4 | inc :: Int -> Int
5 | inc x = x + 1
6 |
--------------------------------------------------------------------------------
/tests/basic/pos/Inc03.hs:
--------------------------------------------------------------------------------
1 | module Inc03 where
2 |
3 | import Inc03Lib
4 |
5 | {-@ incr2 :: NN -> NN @-}
6 | incr2 :: Int -> Int
7 | incr2 x = incr (incr x)
8 |
9 | {-@ incr3 :: NN -> NN @-}
10 | incr3 :: Int -> Int
11 | incr3 = incr . incr . incr
12 |
--------------------------------------------------------------------------------
/tests/basic/pos/Inc03Lib.hs:
--------------------------------------------------------------------------------
1 | module Inc03Lib where
2 |
3 | {-@ type NN = {v:Int | 0 <= v} @-}
4 |
5 | {-@ incr :: NN -> NN @-}
6 | incr :: Int -> Int
7 | incr x = x + 1
8 |
--------------------------------------------------------------------------------
/tests/basic/pos/Inc04.hs:
--------------------------------------------------------------------------------
1 | module Inc04 where
2 |
3 | {-@ inc :: Nat -> Nat @-}
4 | inc :: Int -> Int
5 | inc x = x + 1
6 |
--------------------------------------------------------------------------------
/tests/basic/pos/Infer00.hs:
--------------------------------------------------------------------------------
1 | module Infer00 () where
2 |
3 | import Language.Haskell.Liquid.Prelude
4 |
5 | myId :: Int -> Int
6 | myId x = x
7 |
8 | prop n = liquidAssertB (n == m)
9 | where
10 | m = myId n
11 |
12 |
--------------------------------------------------------------------------------
/tests/basic/pos/List00.hs:
--------------------------------------------------------------------------------
1 | module List00 where
2 |
3 | data List a = Emp
4 |
5 | {-@ foo :: List a -> { v : Int | 20 <= v } @-}
6 | foo :: List a -> Int
7 | foo Emp = 100
8 |
--------------------------------------------------------------------------------
/tests/basic/pos/MeasureOverlapA.hs:
--------------------------------------------------------------------------------
1 | -- | See "MeasureOverlapC".
2 | module MeasureOverlapA where
3 |
4 | {-@
5 | measure foo :: Bool -> Bool
6 | foo False = False
7 | foo True = True
8 | @-}
9 |
--------------------------------------------------------------------------------
/tests/basic/pos/MeasureOverlapB.hs:
--------------------------------------------------------------------------------
1 | -- | See "MeasureOverlapC".
2 | module MeasureOverlapB where
3 |
4 | import MeasureOverlapA
5 |
6 | {-@
7 | measure foo :: Bool -> Bool
8 | foo False = True
9 | foo True = False
10 |
11 | @-}
12 |
13 |
--------------------------------------------------------------------------------
/tests/basic/pos/MeasureOverlapD.hs:
--------------------------------------------------------------------------------
1 | -- | See "MeasureOverlapE".
2 | module MeasureOverlapD where
3 |
4 | import MeasureOverlapA
5 | import MeasureOverlapB
6 |
7 |
--------------------------------------------------------------------------------
/tests/basic/pos/OpaqueRefl01.hs:
--------------------------------------------------------------------------------
1 | -- | test if basic opaque reflection is functioning
2 |
3 | {-@ LIQUID "--reflection" @-}
4 |
5 | module OpaqueRefl01 (inc) where
6 |
7 | c :: Int
8 | c = 15
9 |
10 | {-@ reflect inc @-}
11 | inc :: Ord a => a -> a -> Int
12 | inc a b = 9 + c
--------------------------------------------------------------------------------
/tests/basic/pos/OpaqueRefl03C.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--reflection" @-}
2 |
3 | module OpaqueRefl03C where
4 |
5 | import OpaqueRefl03D (foobar)
6 |
7 | {-@ reflect myfoobar1 @-}
8 | myfoobar1 :: Int -> Int -> Int
9 | myfoobar1 n m = foobar n m
--------------------------------------------------------------------------------
/tests/basic/pos/OpaqueRefl03D.hs:
--------------------------------------------------------------------------------
1 |
2 | module OpaqueRefl03D where
3 |
4 | foobar :: Int -> Int -> Int
5 | foobar n m = n + m
--------------------------------------------------------------------------------
/tests/basic/pos/OpaqueRefl04.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--reflection" @-}
2 |
3 | module OpaqueRefl04 where
4 |
5 | {-@ reflect keepEvens @-}
6 | keepEvens :: [Int] -> [Int]
7 | keepEvens = filter even
8 |
--------------------------------------------------------------------------------
/tests/basic/pos/Poly00.hs:
--------------------------------------------------------------------------------
1 | module Poly00 where
2 |
3 | {-@ zoo :: x:a -> {v:a | v = x} @-}
4 | zoo :: goober -> goober
5 | zoo x = x
6 |
--------------------------------------------------------------------------------
/tests/basic/pos/ReflExt05A.hs:
--------------------------------------------------------------------------------
1 | -- | some fruity test to check reflection of foreign functions with data selectors
2 |
3 | {-@ LIQUID "--reflection" @-}
4 |
5 | module ReflExt05A where
6 |
7 | import ReflExt05B
8 |
9 | {-@ reflect calories @-}
10 |
--------------------------------------------------------------------------------
/tests/basic/pos/ReflExt08A.hs:
--------------------------------------------------------------------------------
1 | -- | test reflection of a function that is using a datatype, but not in case split alternatives
2 |
3 | {-@ LIQUID "--reflection" @-}
4 |
5 | module ReflExt08A where
6 |
7 | import ReflExt08B
8 |
9 | {-@ reflect fromCal @-}
10 |
--------------------------------------------------------------------------------
/tests/basic/pos/SkipDerived00.hs:
--------------------------------------------------------------------------------
1 | module SkipDerived00 where
2 |
3 | data WeekDay = Mon | Tue deriving (Read)
4 |
--------------------------------------------------------------------------------
/tests/benchmarks/NOTES.txt:
--------------------------------------------------------------------------------
1 | Changes:
2 |
3 | [base/Data/List.hs]
4 | findIndices: Change Int# to Int
5 |
--------------------------------------------------------------------------------
/tests/benchmarks/base-4.5.1.0/GHC/IO.hs-boot:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE Unsafe #-}
2 | {-# LANGUAGE NoImplicitPrelude #-}
3 |
4 | module GHC.IO where
5 |
6 | import GHC.Types
7 |
8 | failIO :: [Char] -> IO a
9 |
10 |
--------------------------------------------------------------------------------
/tests/benchmarks/base-4.5.1.0/GHC/IO/Handle.hs-boot:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE Trustworthy #-}
2 | {-# LANGUAGE NoImplicitPrelude #-}
3 |
4 | module GHC.IO.Handle where
5 |
6 | import GHC.IO
7 | import GHC.IO.Handle.Types
8 |
9 | hFlush :: Handle -> IO ()
10 |
11 |
--------------------------------------------------------------------------------
/tests/benchmarks/base-4.5.1.0/Setup.hs:
--------------------------------------------------------------------------------
1 | module Main (main) where
2 |
3 | import Distribution.Simple
4 |
5 | main :: IO ()
6 | main = defaultMainWithHooks defaultUserHooks
7 |
--------------------------------------------------------------------------------
/tests/benchmarks/base-4.5.1.0/System/Posix/Internals.hs-boot:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE Trustworthy #-}
2 | {-# LANGUAGE NoImplicitPrelude #-}
3 | module System.Posix.Internals where
4 |
5 | import GHC.IO
6 | import GHC.Base
7 |
8 | puts :: String -> IO ()
9 |
10 |
--------------------------------------------------------------------------------
/tests/benchmarks/base-4.5.1.0/cbits/selectUtils.c:
--------------------------------------------------------------------------------
1 |
2 | #include "HsBase.h"
3 | void hsFD_ZERO(fd_set *fds) { FD_ZERO(fds); }
4 |
--------------------------------------------------------------------------------
/tests/benchmarks/containers-0.5.0.0/Data/StrictPair.hs:
--------------------------------------------------------------------------------
1 | module Data.StrictPair (strictPair) where
2 |
3 | -- | Evaluate both argument to WHNF and create a pair of the result.
4 | strictPair :: a -> b -> (a, b)
5 | strictPair x y = x `seq` y `seq` (x, y)
6 | {-# INLINE strictPair #-}
7 |
--------------------------------------------------------------------------------
/tests/benchmarks/containers-0.5.0.0/Setup.hs:
--------------------------------------------------------------------------------
1 | module Main (main) where
2 |
3 | import Distribution.Simple
4 |
5 | main :: IO ()
6 | main = defaultMain
7 |
--------------------------------------------------------------------------------
/tests/benchmarks/containers-0.5.0.0/benchmarks/LookupGE/Makefile:
--------------------------------------------------------------------------------
1 | TOP = ..
2 |
3 | include ../Makefile
4 |
--------------------------------------------------------------------------------
/tests/benchmarks/containers-0.5.0.0/benchmarks/SetOperations/Makefile:
--------------------------------------------------------------------------------
1 | TOP = ..
2 |
3 | include ../Makefile
4 |
--------------------------------------------------------------------------------
/tests/benchmarks/containers-0.5.0.0/benchmarks/SetOperations/SetOperations-IntSet.hs:
--------------------------------------------------------------------------------
1 | module Main where
2 |
3 | import Data.IntSet as C
4 | import SetOperations
5 |
6 | main = benchmark fromList True [("union", C.union), ("difference", C.difference), ("intersection", C.intersection)]
7 |
--------------------------------------------------------------------------------
/tests/benchmarks/containers-0.5.0.0/benchmarks/SetOperations/SetOperations-Set.hs:
--------------------------------------------------------------------------------
1 | module Main where
2 |
3 | import Data.Set as C
4 | import SetOperations
5 |
6 | main = benchmark fromList True [("union", C.union), ("difference", C.difference), ("intersection", C.intersection)]
7 |
--------------------------------------------------------------------------------
/tests/benchmarks/containers-0.5.0.0/benchmarks/bench-cmp.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | ./bench-cmp.pl "$@" | column -nts\; | less -SR
4 |
--------------------------------------------------------------------------------
/tests/benchmarks/cse230/README.md:
--------------------------------------------------------------------------------
1 | Retrieved from: https://github.com/ucsd-progsys/230-wi19-web/
2 |
--------------------------------------------------------------------------------
/tests/benchmarks/esop2013-submission/Base.hquals:
--------------------------------------------------------------------------------
1 | qualif Bound1(v: Data.Map.Base.Map k a , x : k): ((isBin v) => (x < (key v)))
2 | qualif Bound2(v: Data.Map.Base.Map k a , x : k): ((isBin v) => (x > (key v)))
3 |
4 |
--------------------------------------------------------------------------------
/tests/benchmarks/hmatrix-0.15.0.1/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright Alberto Ruiz 2006-2007
2 | GPL license
3 |
--------------------------------------------------------------------------------
/tests/benchmarks/hmatrix-0.15.0.1/examples/data.txt:
--------------------------------------------------------------------------------
1 | 0.9 1.1
2 | 2.1 3.9
3 | 3.1 9.2
4 | 4.0 51.8
5 | 4.9 25.3
6 | 6.1 35.7
7 | 7.0 49.4
8 | 7.9 3.6
9 | 9.1 81.5
10 | 10.2 99.5
--------------------------------------------------------------------------------
/tests/benchmarks/hmatrix-0.15.0.1/examples/deriv.hs:
--------------------------------------------------------------------------------
1 | -- Numerical differentiation
2 |
3 | import Numeric.GSL
4 |
5 | d :: (Double -> Double) -> (Double -> Double)
6 | d f x = fst $ derivCentral 0.01 f x
7 |
8 | main = print $ d (\x-> x * d (\y-> x+y) 1) 1
9 |
--------------------------------------------------------------------------------
/tests/benchmarks/kmeans-0.1.2/Setup.lhs:
--------------------------------------------------------------------------------
1 | #! /usr/bin/env runhaskell
2 |
3 | > import Distribution.Simple
4 | > main = defaultMain
5 |
--------------------------------------------------------------------------------
/tests/benchmarks/llrbtree-0.1.1/Setup.hs:
--------------------------------------------------------------------------------
1 | import Distribution.Simple
2 | main = defaultMain
3 |
--------------------------------------------------------------------------------
/tests/benchmarks/originals/base-4.5.1.0.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/tests/benchmarks/originals/base-4.5.1.0.tar.gz
--------------------------------------------------------------------------------
/tests/benchmarks/originals/bytestring-0.9.0.2.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/tests/benchmarks/originals/bytestring-0.9.0.2.tar.gz
--------------------------------------------------------------------------------
/tests/benchmarks/originals/containers-0.5.0.0.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/tests/benchmarks/originals/containers-0.5.0.0.tar.gz
--------------------------------------------------------------------------------
/tests/benchmarks/originals/ghc-7.4.1.tgz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/tests/benchmarks/originals/ghc-7.4.1.tgz
--------------------------------------------------------------------------------
/tests/benchmarks/originals/hmatrix-0.15.0.1.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/tests/benchmarks/originals/hmatrix-0.15.0.1.tar.gz
--------------------------------------------------------------------------------
/tests/benchmarks/originals/llrbtree-0.1.1.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/tests/benchmarks/originals/llrbtree-0.1.1.tar.gz
--------------------------------------------------------------------------------
/tests/benchmarks/originals/text-0.11.2.3.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/tests/benchmarks/originals/text-0.11.2.3.tar.gz
--------------------------------------------------------------------------------
/tests/benchmarks/originals/unordered-containers-0.2.1.0.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/tests/benchmarks/originals/unordered-containers-0.2.1.0.tar.gz
--------------------------------------------------------------------------------
/tests/benchmarks/originals/vector-0.10.0.1.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/tests/benchmarks/originals/vector-0.10.0.1.tar.gz
--------------------------------------------------------------------------------
/tests/benchmarks/originals/vector-0.9.1.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/tests/benchmarks/originals/vector-0.9.1.tar.gz
--------------------------------------------------------------------------------
/tests/benchmarks/originals/vector-algorithms-0.5.4.2.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/tests/benchmarks/originals/vector-algorithms-0.5.4.2.tar.gz
--------------------------------------------------------------------------------
/tests/benchmarks/originals/wouter-swierstra-xmonad-7715ec2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/tests/benchmarks/originals/wouter-swierstra-xmonad-7715ec2.zip
--------------------------------------------------------------------------------
/tests/benchmarks/originals/xmonad-0.10.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ucsd-progsys/liquidhaskell/eb585061ffad22ea4ba232cc3f08fd7a2dfb3dfc/tests/benchmarks/originals/xmonad-0.10.tar.gz
--------------------------------------------------------------------------------
/tests/benchmarks/stitch-lh/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | dist-newstyle
3 | *.swp
4 |
--------------------------------------------------------------------------------
/tests/benchmarks/stitch-lh/CHANGES.md:
--------------------------------------------------------------------------------
1 | Version 1.0
2 | ===========
3 |
4 | * Initial release
5 |
--------------------------------------------------------------------------------
/tests/benchmarks/stitch-lh/main/Main.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--skip-module" @-}
2 |
3 | module Main where
4 |
5 | import qualified Language.Stitch.LH.Repl as Repl ( main )
6 |
7 | main :: IO ()
8 | main = Repl.main
9 |
--------------------------------------------------------------------------------
/tests/benchmarks/stitch-lh/nixpkgs.nix:
--------------------------------------------------------------------------------
1 | import (fetchTarball "https://github.com/tweag/nixpkgs/archive/e544ee88fa4590df75e221e645a03fe157a99e5b.tar.gz")
2 |
--------------------------------------------------------------------------------
/tests/benchmarks/stitch-lh/tests/revapp.stitch:
--------------------------------------------------------------------------------
1 | -- Stitch test file
2 | revapp = \x:Int. \y:Int->Int. y x;
3 | plus1 = \x:Int. x + 1
4 |
--------------------------------------------------------------------------------
/tests/benchmarks/text-0.11.2.3/Setup.lhs:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env runhaskell
2 | > import Distribution.Simple
3 | > main = defaultMain
4 |
--------------------------------------------------------------------------------
/tests/benchmarks/unordered-containers-0.2.1.0/Setup.hs:
--------------------------------------------------------------------------------
1 | import Distribution.Simple
2 | main = defaultMain
3 |
--------------------------------------------------------------------------------
/tests/benchmarks/vector-0.10.0.1/Setup.hs:
--------------------------------------------------------------------------------
1 | import Distribution.Simple
2 | main = defaultMain
3 |
4 |
--------------------------------------------------------------------------------
/tests/benchmarks/vector-algorithms-0.5.4.2/Setup.lhs:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env runhaskell
2 | > import Distribution.Simple
3 | > main = defaultMain
4 |
--------------------------------------------------------------------------------
/tests/benchmarks/xmonad-0.10/Setup.lhs:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env runhaskell
2 | > import Distribution.Simple
3 | > main = defaultMain
4 |
--------------------------------------------------------------------------------
/tests/cabal_driver/driver.hs:
--------------------------------------------------------------------------------
1 | -- | Test driver for cabal-based builds.
2 |
3 | import Test.Build
4 | import Test.Options
5 |
6 | main :: IO ()
7 | main = program cabalTestEnv cabalRun =<< parseOptions
8 |
--------------------------------------------------------------------------------
/tests/classes/neg/Class00.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Class00 where
3 |
4 | class Zoo a where
5 | zoo :: Int -> a
6 |
7 | {-@ class Zoo a where
8 | zoo :: {v:Int | v > 0} -> a
9 | @-}
10 |
11 | zing :: (Zoo a) => a
12 | zing = zoo 0
13 |
14 |
--------------------------------------------------------------------------------
/tests/classes/neg/Class01.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | -- tests the "default method"
3 |
4 | module Class01 where
5 |
6 | {-@ class Foo a where
7 | foo :: a -> Nat
8 | @-}
9 |
10 | class Foo a where
11 | foo :: a -> Int
12 | foo _ = 0 - 10
13 |
--------------------------------------------------------------------------------
/tests/classes/neg/RealProps0.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 |
3 | -- Issue overload-div-int-real #579
4 |
5 | module RealProps0 where
6 |
7 | divId :: Double -> Double
8 | divId x = x / 0.0
9 |
10 |
--------------------------------------------------------------------------------
/tests/classes/pos/Class00.hs:
--------------------------------------------------------------------------------
1 | module Class00 where
2 |
3 | class Zoo a where
4 | zoo :: a -> Int
5 |
6 | {-@ class Zoo a where
7 | zoo :: a -> {v:Int | v > 0}
8 | @-}
9 |
10 | {-@ zing :: (Zoo a) => a -> {v:Int | v > 0} @-}
11 | zing x = zoo x
12 |
13 |
--------------------------------------------------------------------------------
/tests/classes/pos/HiddenMethod00.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--reflection" @-}
2 |
3 | module HiddenMethod00 where
4 |
5 | import Prelude hiding (mod, gcd)
6 |
7 | foo :: a -> a
8 | foo x = x
9 |
--------------------------------------------------------------------------------
/tests/classes/pos/RealProps0.hs:
--------------------------------------------------------------------------------
1 |
2 | -- Issue overload-div-int-real #579
3 |
4 | module RealProps0 where
5 |
6 | {-@ divId :: x:Double -> {v:Double | v = x} @-}
7 | divId :: Double -> Double
8 | divId x = x / 1.0
9 |
10 |
--------------------------------------------------------------------------------
/tests/datacon/neg/Data00.hs:
--------------------------------------------------------------------------------
1 | module Data00 where
2 |
3 | import Data00Lib
4 |
5 | test2 :: Int -> Thing
6 | test2 = Thing
7 |
--------------------------------------------------------------------------------
/tests/datacon/neg/Data00Lib.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Data00Lib where
3 |
4 | {-@ data Thing = Thing { fldThing :: {v:Int | 0 <= v} } @-}
5 | data Thing = Thing { fldThing :: Int }
6 |
7 | test2 :: Int -> Thing
8 | test2 = Thing
9 |
10 |
11 |
--------------------------------------------------------------------------------
/tests/datacon/neg/Data01.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Data01 where
3 |
4 | {-@ data Thing = Thing { fldThing :: Nat } @-}
5 | data Thing = Thing { fldThing :: Int }
6 |
7 |
8 | test2 :: Int -> Thing
9 | test2 = Thing
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tests/datacon/neg/Data02.hs:
--------------------------------------------------------------------------------
1 | module Data02 where
2 |
3 | import Data02Lib
4 |
5 | {-@ test4 :: Nat -> Pair @-}
6 | test4 x = P x (x - 1)
7 |
--------------------------------------------------------------------------------
/tests/datacon/neg/Data02Lib.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-any-error" @-}
2 | module Data02Lib where
3 |
4 | {-@ data Pair = P { pX :: Nat, pY :: {v:Nat | pX < v} } @-}
5 | data Pair = P { pX :: Int, pY :: Int }
6 |
7 | {-@ test1 :: Pair -> TT @-}
8 | test1 (P a b) = a < a
9 |
10 |
--------------------------------------------------------------------------------
/tests/datacon/pos/Data00.hs:
--------------------------------------------------------------------------------
1 | module Data00 where
2 |
3 | import Data00Lib
4 |
5 | {-@ test3 :: Thing -> Nat @-}
6 | test3 :: Thing -> Int
7 | test3 (Thing x) = x
8 |
9 | {-@ test4 :: Nat -> Thing @-}
10 | test4 :: Int -> Thing
11 | test4 = Thing
12 |
13 |
14 |
--------------------------------------------------------------------------------
/tests/datacon/pos/Data02.hs:
--------------------------------------------------------------------------------
1 | module Data02 where
2 |
3 | import Data02Lib
4 |
5 | {-@ test3 :: Pair -> TT @-}
6 | test3 (P a b) = a < b
7 |
8 | {-@ test4 :: Nat -> Pair @-}
9 | test4 x = P x (x + 1)
10 |
11 |
--------------------------------------------------------------------------------
/tests/errors/BadAliasApp.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Malformed application of type alias `ListN`" @-}
2 | module BadAliasApp where
3 |
4 | {-@ type ListN a N = {v:[a] | len v = N} @-}
5 |
6 | {-@ foo :: ListN 0 0 @-}
7 | foo :: [a]
8 | foo = undefined
9 |
--------------------------------------------------------------------------------
/tests/errors/BadAnnotation.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Malformed annotation" @-}
2 | module BadAnnotation where
3 |
4 | {-@ incr :: x:Int -> {v:Int | x < v } -}
5 | incr :: Int -> Int
6 | incr x = x - 1
7 |
--------------------------------------------------------------------------------
/tests/errors/BadAnnotation1.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Malformed annotation" @-}
2 | module BadAnnotation1 where
3 |
4 | {-@ incr :: x:Int
5 | -> {v:Int | x < v }
6 | -}
7 | incr :: Int -> Int
8 | incr x = x - 1
9 |
--------------------------------------------------------------------------------
/tests/errors/BadData0.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Unknown type constructor `Zoog`" @-}
2 | module BadData0 where
3 |
4 | data Zog = Z Int
5 | {-@ data Zoog = Z { mkZ :: Nat } @-}
6 |
7 | frog = Z (0 - 5)
8 |
--------------------------------------------------------------------------------
/tests/errors/BadDataCon2.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=GHC and Liquid specifications have different numbers of fields for `BadDataCon2.Cuthb`" @-}
2 | module BadDataCon2 where
3 |
4 | {-@ data T = Cuthb { fldX :: Int, fldY :: Int } @-}
5 |
6 | data T = Cuthb { fldX :: Int }
7 |
--------------------------------------------------------------------------------
/tests/errors/BadDataConType2.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=different numbers of fields for `BadDataConType2.C`" @-}
2 | module BadDataConType2 where
3 |
4 | {-@ data T = C { fldX :: Int } @-}
5 |
6 | data T = C { fldX :: Int, fldY :: Int }
7 |
--------------------------------------------------------------------------------
/tests/errors/BadPragma0.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Illegal pragma" @-}
2 | {-@ LIQUID "--idirs=.." @-}
3 |
4 | module BadPragma0 where
5 |
6 | i :: Int
7 | i = 1
8 |
9 |
--------------------------------------------------------------------------------
/tests/errors/BadPragma1.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Illegal pragma" @-}
2 | {-@ LIQUID "--c-files=./wow.c" @-}
3 |
4 | module BadPragma1 where
5 |
6 | i :: Int
7 | i = 1
8 |
9 |
--------------------------------------------------------------------------------
/tests/errors/BadPragma2.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Illegal pragma" @-}
2 | {-@ LIQUID "--ghc-option=-O0" @-}
3 |
4 | module BadPragma2 where
5 |
6 | i :: Int
7 | i = 1
8 |
9 |
--------------------------------------------------------------------------------
/tests/errors/BadQualifier.hs:
--------------------------------------------------------------------------------
1 | module BadQualifier where
2 | data RGRef a
3 | {-@ measure tv :: RGRef a -> a @-}
4 | {-@ qualif TERMINALVALUE(r:RGRef a): (tv r) @-}
5 |
6 |
7 | data A
8 | data B
9 |
10 | {-@ qualif Foo(x:A, y:B): (x == y) @-}
11 |
--------------------------------------------------------------------------------
/tests/errors/BadSyn1.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Malformed application of type alias `Fooz`" @-}
2 | module BadSyn1 where
3 |
4 | type Foo = Int
5 |
6 | {-@ type Fooz = {v:Int | 1 < v} @-}
7 |
8 | {-@ bob :: Fooz 1000 @-}
9 | bob = 10 :: Int
10 |
11 |
--------------------------------------------------------------------------------
/tests/errors/BadSyn2.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Malformed application of type alias `BadSyn2.Foo`" @-}
2 | module BadSyn2 where
3 |
4 | type Foo = Int
5 |
6 | {-@ bob :: Foo 1000 @-}
7 | bob = 10 :: Int
8 |
9 |
--------------------------------------------------------------------------------
/tests/errors/BadSyn3.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Malformed application of type alias `BadSyn3.Foo`" @-}
2 | module BadSyn3 where
3 |
4 | type Foo = Int
5 |
6 | {-@ bob :: Foo String @-}
7 | bob = 10 :: Int
8 |
9 |
--------------------------------------------------------------------------------
/tests/errors/CyclicExprAlias0.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Cyclic type alias definition" @-}
2 | module CyclicExprAlias0 () where
3 |
4 | {-@ expression CyclicA1 Q = CyclicA1 Q @-}
5 |
6 |
--------------------------------------------------------------------------------
/tests/errors/CyclicExprAlias1.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Cyclic type alias definition" @-}
2 | module CyclicExprAlias1 () where
3 |
4 | {-@ expression CyclicB1 Q = CyclicB2 Q @-}
5 | {-@ expression CyclicB2 Q = CyclicB1 Q @-}
6 |
7 |
--------------------------------------------------------------------------------
/tests/errors/CyclicPredAlias0.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Cyclic type alias definition for `CyclicA1`" @-}
2 | module CyclicPredAlias0 () where
3 |
4 | {-@ predicate CyclicA1 Q = CyclicA1 Q @-}
5 |
6 |
--------------------------------------------------------------------------------
/tests/errors/CyclicPredAlias1.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Cyclic type alias definition for `CyclicB1`" @-}
2 | module CyclicPredAlias1 () where
3 |
4 | {-@ predicate CyclicB1 Q = CyclicB2 Q @-}
5 | {-@ predicate CyclicB2 Q = CyclicB1 Q @-}
6 |
7 |
--------------------------------------------------------------------------------
/tests/errors/CyclicTypeAlias0.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Cyclic type alias definition for `CyclicA1`" @-}
2 | module CyclicTypeAlias0 () where
3 |
4 | {-@ type CyclicA1 = CyclicA2 @-}
5 | {-@ type CyclicA2 = CyclicA1 @-}
6 |
7 |
--------------------------------------------------------------------------------
/tests/errors/CyclicTypeAlias1.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Cyclic type alias definition for `CyclicB1`" @-}
2 | module CyclicTypeAlias1 () where
3 |
4 | {-@ type CyclicB1 = CyclicB2 @-}
5 | {-@ type CyclicB2 = CyclicB3 @-}
6 | {-@ type CyclicB3 = CyclicB1 @-}
7 |
8 |
--------------------------------------------------------------------------------
/tests/errors/CyclicTypeAlias2.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Cyclic type alias definition for `CyclicC`" @-}
2 | module CyclicTypeAlias2 () where
3 |
4 | {-@ type CyclicC = [CyclicC] @-}
5 |
6 |
--------------------------------------------------------------------------------
/tests/errors/CyclicTypeAlias3.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Cyclic type alias definition for `CyclicD2" @-}
2 | module CyclicTypeAlias3 () where
3 |
4 | {-@ type CyclicD1 = CyclicD2 @-}
5 | {-@ type CyclicD2 = CyclicD3 @-}
6 | {-@ type CyclicD3 = CyclicD2 @-}
7 |
8 |
--------------------------------------------------------------------------------
/tests/errors/EmptyData.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=one or more fields in the data declaration for `A`" @-}
2 | -- | see: https://github.com/ucsd-progsys/liquidhaskell/issues/1169
3 |
4 | module EmptyData where
5 |
6 | {-@ data A @-}
7 | data A = B
8 |
--------------------------------------------------------------------------------
/tests/errors/ErrLocation.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=ErrLocation.hs:10:13" @-}
2 |
3 | module ErrLocation where
4 |
5 | {-@ inc :: Nat -> Nat @-}
6 | inc :: Int -> Int
7 | inc x = x + 1
8 |
9 | bar :: Int -> Int
10 | bar x = inc (x - 1)
11 |
12 |
--------------------------------------------------------------------------------
/tests/errors/HoleCrash2.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Malformed application of type alias `Geq`" @-}
2 | module HoleCrash2 where
3 |
4 | data Poo a = C { t :: Poo a }
5 |
6 | {-@ type Geq a N = {v:a | N <= v} @-}
7 |
8 | {-@ data Poo a = C { t :: Poo (Geq 0) } @-}
9 |
--------------------------------------------------------------------------------
/tests/errors/Inconsistent1.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Specified type does not refine Haskell type for `Inconsistent1.incr` (Checked)" @-}
2 | module Inconsistent1 where
3 |
4 | {-@ incr :: Int -> Bool @-}
5 | incr :: Int -> Int
6 | incr x = x + 1
7 |
--------------------------------------------------------------------------------
/tests/errors/Inconsistent2.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Specified type does not refine Haskell type for `Inconsistent2.foo` (Checked)" @-}
2 | module Inconsistent2 where
3 |
4 | {-@ foo :: Nat @-}
5 | foo :: Bool
6 | foo = True
7 |
--------------------------------------------------------------------------------
/tests/errors/MissingField1.hs:
--------------------------------------------------------------------------------
1 | -- TODO-REBARE: LH _should_ (?) complain: "Unknown field `goober` in refined definition of `Foo`"
2 |
3 | module MissingField1 where
4 |
5 | data Foo = F Int
6 |
7 | {-@ data Foo = F { goober :: Int } @-}
8 |
9 |
--------------------------------------------------------------------------------
/tests/errors/ReWrite6.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Unable to use ReWrite6.bad as a rewrite because it does not prove an equality" @-}
2 | module ReWrite6 where
3 |
4 | -- Reject non equalities
5 | {-@ rewrite bad @-}
6 | {-@ bad :: {1 < 2} @-}
7 | bad :: ()
8 | bad = ()
9 |
--------------------------------------------------------------------------------
/tests/errors/UnboundCheckVar.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--checks=ink" @-}
2 |
3 | module UnboundCheckVar where
4 |
5 | inc :: Int -> Int
6 | inc x = x + 1
7 |
8 |
--------------------------------------------------------------------------------
/tests/errors/UnboundFunInSpec1.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Unknown logic name `rubbish`" @-}
2 | {-@ LIQUID "--expect-error-containing=Unknown logic name `this`" @-}
3 | module UnboundFunInSpec1 where
4 |
5 | {-@ foo :: xs:_ -> {v:_ | this = rubbish } @-}
6 | foo _ _ = 0
7 |
--------------------------------------------------------------------------------
/tests/errors/UnboundVarInAssume.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Unknown logic name `x`" @-}
2 | module UnboundVarInAssume where
3 |
4 | {-@ assume incr :: Int -> {v : Int | v == x} @-}
5 | incr :: Int -> Int
6 | incr x = x + 1
7 |
--------------------------------------------------------------------------------
/tests/errors/UnboundVarInSpec.hs:
--------------------------------------------------------------------------------
1 | {-@ LIQUID "--expect-error-containing=Unknown logic name `y`" @-}
2 | module UnboundVarInSpec where
3 |
4 |
5 | {-@ foo :: forall