Revision 72aa198b460b1ada73f66f35edc05901fe503f8c authored by Anish Tondwalkar on 01 August 2019, 07:53:00 UTC, committed by Anish Tondwalkar on 01 August 2019, 07:53:00 UTC
The problem is that when we have an ~> under an forall, at the term
level we have a tabs, and that means we have to swtich from checking (at
the type with the implicit parameter) to synthing (plus a subtyping
check). But when we synth, this implicit parameter is simply not in
scope: since it's not bound anywhere in the term, it can't be added to
the context during synthesis.
1 parent 95a7cd4
Raw File
README.md
# Mist 

A tiny language for teaching and experimenting with refinement types, in the style of 
[LiquidHaskell](https://github.com/ucsd-progsys/liquidhaskell).

## TODO

- [x] BUILD initial code
- [ ] STEAL make grammar more Haskelly
- [ ] PARSE in all Nano tests (but using Garter representation)
- [ ] PORT all the garter tests (using Haskelly syntax)
- [ ] PRINT all inferred (top-level) types
- [ ] ADD   elaboration @a @b etc. 
- [ ] PRINT "elaborated" expressions
- [ ] TYPE  refinement type constraints
- [ ] GEN   refinement type constraints 
- [ ] SOLVE refinement type constraints (with fixpoint)

## Modules

- `Language.Mist.Utils.Misc` 
- `Language.Mist.Utils.UX` 
- `Language.Mist.Utils.Test` 
- `Language.Mist.Basic.Types` 
- `Language.Mist.Basic.ANF` 
- `Language.Mist.Basic.WellFormed` 
- `Language.Mist.Basic.Check` 
- `Language.Mist.Liquid.Types` 
- `Language.Mist.Liquid.Check` 

back to top