Commit Graph

12 Commits

Author SHA1 Message Date
Stephen Chang
71d65e1a44 stlc, sysf: make function tycon infix instead of prefix
- TODO: typecheck uses -> as datum-literal because it can't see the
        actual literal, fix this
2014-08-21 13:31:11 -04:00
Stephen Chang
4d8f904e70 sysf: fix forall inst problems
- also add tyvar and tau-inst-list syntax-classes
- add better forall tests
  - exposes problem with naive subst - if you subst non-id type
  - add lots of notes about forall problem
2014-08-20 19:20:02 -04:00
Stephen Chang
b0769c5f1a sysf: impl renaming of forall binders but then backed out
- capture when applying forall is ok since binder is renamed as well
  - and since type names are valid binder names, this is ok
  - TODO: what if we call inst with non-base type?
- add more variable capture tests
- typecheck: type= handles alpha-equiv
2014-08-20 14:39:24 -04:00
Stephen Chang
c14f4bc705 sysf: add inst, better error when type insts are missing in app
- add nqueens to sysf-tests
  - current failing cases: nested foralls
  - giving poly fn to map without explicit inst
2014-08-18 18:36:41 -04:00
Stephen Chang
99cc2e57e8 code cleanup 2014-08-15 19:07:47 -04:00
Stephen Chang
45dd603a08 stlc and sysf: require define to give explicit return type
sysf: extended cases to handle forall
2014-08-15 19:04:16 -04:00
Stephen Chang
caeda2ff0d sysf: move apply-forall to typecheck.rkt 2014-08-15 16:18:17 -04:00
Stephen Chang
ea5d41deb0 sysf: code cleanup
- at this point, sysf only extends define-type, app, and lambda
- sysf passes all stlc-tests and sysf-tests
2014-08-15 16:16:24 -04:00
Stephen Chang
0a82e9298c sysf: basic forall type working 2014-08-15 15:33:07 -04:00
Stephen Chang
4783c7f93e sysf: copied from stlc 2014-08-13 16:39:16 -04:00
Stephen Chang
3b9800919b stlc: non parametric maybe working; havent tried recursive types (ie cons) 2014-08-12 17:58:56 -04:00
Stephen Chang
cb123987de add sysf: copied from stlc 2014-08-08 17:03:53 -04:00