Stephen Chang
47fe5ae232
allow explicit tyvars in fn def: workaround for inferred poly fn type with wrong arg order
2016-03-17 16:44:56 -04:00
Stephen Chang
a41a4cdd62
start exploring (local) inference
2015-12-11 17:01:25 -05:00
Stephen Chang
4152db6575
add occurrence and overloading to run-all-tests
2015-10-22 17:12:11 -04:00
Stephen Chang
2278adcf95
replace provide/requires with "extends...except"/"reuse...from" forms
...
- introduce basic define-typed-syntax instead of define-syntax
- add fomega3 --- same as fomega2, without the duplication
- app and lam are both types and terms
- arrow is both type and kind
- same tests as fomega2
2015-10-01 16:21:29 -04:00
Stephen Chang
0255003ff7
all tests passing with define-syntax-category (except some err msgs in fomega2)
2015-08-27 19:30:46 -04:00
Stephen Chang
efaef8b60e
progress commit: stuck on fomega+define-syntax-category
2015-08-21 19:28:36 -04:00
Stephen Chang
6feff7d3b3
completed: type valiation; new type constructor pattern matching
2015-08-19 19:29:07 -04:00
Stephen Chang
1a831454f4
progress commit: use typechecking system to typecheck types
...
- ported (tests passing) up to stlc+sub.rkt
2015-08-14 19:37:09 -04:00
Stephen Chang
3d4fe8f71a
new define-type-constructor: exist-tests.rkt passing
2015-08-07 18:12:47 -04:00
Stephen Chang
0dde065949
new define-type-constructor: support binding forms
...
- tests passing up to stlc+rec-iso.rkt
2015-08-07 17:26:53 -04:00
Stephen Chang
75b4dae95f
use new define-type-constructor and #%type in stlc+box
2015-08-04 18:24:33 -04:00
Stephen Chang
c151463a6f
use #%type in stlc+reco+var.rkt; tests passing
2015-08-04 17:31:36 -04:00
Stephen Chang
5435021ee6
complete fsub
2015-07-10 15:43:08 -04:00
Stephen Chang
b0a8d192ef
finish exist.rkt
2015-07-09 14:00:36 -04:00
Stephen Chang
e678912c2c
add stlc+rec-iso files; rename record files; start exist
...
- previously forgot to add stlc+rec-iso.rkt and tests
- rename files with records (eg stlc+var, stlc+rec+sub)
- use "reco" to avoid confusion with recursive types ("rec")
- start exist.rkt --- existential types
2015-07-08 17:24:15 -04:00
Stephen Chang
dafa992176
add stlc+(iso)recursive types
2015-06-30 16:32:50 -04:00
Stephen Chang
d69a16ffcb
add fomega2.rkt
...
- fomega2 is the same as fomega.rkt, except tyapp, tylam, and => are removed
- instead, #%app, \lam, and -> serve dual purpose at both term and type level
2015-06-29 19:41:05 -04:00
Stephen Chang
dcd72eb245
code cleanup
2015-06-29 18:37:40 -04:00
Stephen Chang
98fdc8806c
convert type representation to fully expanded syntax
...
- type-eval = expand/df
- fomega tyapp and tylam not yet implemented
2015-06-26 18:56:01 -04:00
Stephen Chang
d0459d58b0
move type=? out of typecheck.rkt and into each language def
2015-05-28 19:18:26 -04:00