Ben Greenman
1887d99abb
[occurrence] filters for products
2015-10-16 18:56:54 -04:00
Ben Greenman
36bec40650
regression tests for subs?
2015-10-15 15:37:48 -04:00
Ben Greenman
36d568b512
[o+] allow unions as filters
2015-10-15 15:26:27 -04:00
Ben Greenman
dfaab96a29
[o+] check for same-arity functions in unions
2015-10-15 14:31:31 -04:00
Ben Greenman
5c8300a538
[o+] check & filter functions (by arity)
2015-10-15 14:08:22 -04:00
Ben Greenman
e2b1eaa06b
bugfix in stlc+sub: subs assumed length=?
2015-10-15 14:00:42 -04:00
Stephen Chang
48b625c2f4
define star as rename-transformer to #%type, in fomega
2015-10-14 15:39:11 -04:00
Stephen Chang
4dd2b66d2b
generalize fomega ty= to avoid specific types; add tests
...
- fixes fomega bug where kind annotations were not being compared
- fix subst bug: must tranfer props (ie types) when replacing an id
- add exist tests to check proper subst in ty=
2015-10-14 14:57:27 -04:00
Stephen Chang
a07fa92d25
clean up fomega2/3, remove many type-eval
...
- remove expand-fn optional arg in infer fn
2015-10-14 14:57:27 -04:00
stchang
94b610c93b
Merged in occurrence (pull request #3 )
...
Occurrence Types: first draft
2015-10-13 21:08:05 -04:00
Ben Greenman
bc2e83c449
[occurence] simple filters complete
2015-10-13 15:16:24 -04:00
Ben Greenman
d7913f7753
[occurrence] subtyping, normal form, and VERY BASIC filters. Having trouble propogating variables.
2015-10-13 12:51:24 -04:00
Ben Greenman
c5d6bfbf9e
[occurrence] type eval
2015-10-11 00:22:16 -04:00
Stephen Chang
bf126449b4
define-type-constructor supports annotated bound vars
...
- use this to impl forall in fomega
- define-type-constructor default arity is =1
- define explicit normalize fn in fomega -- speeds up tests 15%
- move same-type to define-syntax-category
2015-10-09 16:59:48 -04:00
Ben Greenman
5497b347df
[occurrence] simple type evaluator, assumes no recursive unions
2015-10-09 02:24:09 -04:00
Stephen Chang
dad2c26c49
add existential tests demonstrating hidden type
2015-10-08 13:22:26 -04:00
Stephen Chang
33996e71ac
rec-iso, reduce ty=? to just focus on lamda
2015-10-08 13:21:54 -04:00
Ben Greenman
050c43b3a2
[occurrence] constructor + basic tests
2015-10-06 16:32:26 -04:00
Stephen Chang
0aa2857e74
define-syntax-category defines default type=?; other cleanup
...
- extended type=? in rec-iso only does 1 subst
- simplify current-type? in fomega by defining in terms of current-kind?
2015-10-06 14:28:08 -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
cb7a49ab06
use #lang typecheck
2015-09-23 17:01:13 -04:00
stchang
a3831adae2
Merged in make-var-like-trans (pull request #1 )
...
add version of make-variable-like-transformer
2015-09-21 18:16:40 -04:00
AlexKnauth
149897653a
use make-variable-like-transformer
2015-09-21 18:09:58 -04:00
AlexKnauth
82b7ec004d
add version of make-variable-like-transformer
2015-09-21 17:54:25 -04:00
AlexKnauth
0d43fd4683
add .gitignore
2015-09-21 17:54:07 -04:00
Stephen Chang
fc2150dc0d
fix subtyping bug in if; add current-join
2015-09-16 15:04:48 -04:00
Stephen Chang
3ea9fc5db0
rec-iso: refactor requires so stlc+tup is base lang
2015-09-16 15:04:13 -04:00
Stephen Chang
a3b9cbc712
fix define-type-constructor to properly error if used at runtime
2015-09-10 14:29:23 -04:00
Stephen Chang
d1814cb57a
code cleanup; add define-sub-relation
...
- all tests passing
2015-08-28 16:57:38 -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
d9e1c2febb
fomega working with define-syntax-category
2015-08-27 17:23:03 -04:00
Stephen Chang
efaef8b60e
progress commit: stuck on fomega+define-syntax-category
2015-08-21 19:28:36 -04:00
Stephen Chang
336b6ea1f3
fix bugs in fomega2
2015-08-20 14:49:33 -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
6e91837992
use new define-type-constructor and #%type in stlc+cons
2015-08-04 18:21:02 -04:00
Stephen Chang
c151463a6f
use #%type in stlc+reco+var.rkt; tests passing
2015-08-04 17:31:36 -04:00
Stephen Chang
a12e85d4bc
fix type constructor pattern matching and extraction
...
- tests passing up to stlc+reco+var tup and proj (not but variants)
2015-07-31 17:33:45 -04:00
Stephen Chang
b687cffb0a
extend define-tycon with "get"- extract matched type by pat var name
2015-07-30 14:12:34 -04:00
Stephen Chang
9973e1c705
start require "extends" macro in typecheck.rkt
2015-07-29 14:27:24 -04:00
Stephen Chang
8d6eaf227e
ext-stlc-tests.rkt passing
2015-07-28 19:32:16 -04:00
Stephen Chang
655c4acd5a
cleanup typecheck.rkt
2015-07-28 19:14:27 -04:00
Stephen Chang
b958ee6947
add #%plain-type; cleanup
...
- see notes.txt for details on #%plain-type
- convert \vdash to meta2 macro instead of function
- cleaner syntax -- no #', use colon
- fix some src locs
- up stlc+lit.rkt working, everything else broken
2015-07-28 17:49:29 -04:00
Stephen Chang
a44d946ffb
add #%type annotation; add type->str; type constructor pattern match
...
- #%type annotation distinguishes types from terms
- is-type? checks #%type
- type->str fixes type printing
- wasnt recursively calling get-orig
- use delay in "type" syntax-class norm attribute
- fixes eager eval problem from before
- add more invalid type tests
- only tested up to stlc+lit.rkt
- nicer type constructors
- more concise, intuitive pat matching language
- use for-meta 2 macros
2015-07-28 15:25:34 -04:00
Stephen Chang
daecc5c624
add tycon pattern matching to stlc
...
- fix stlc+lit tests
- current-promote is currently broken
- add err msg checking unit rackunit-typechecking
- works with new expander
2015-07-24 16:26:04 -04:00
Stephen Chang
0e1a848465
add fsub test; typecheck? needs to call current-promote
2015-07-20 18:03:33 -04:00
Stephen Chang
d0c61a5dc0
add current-promote; fsub avoids extending app and proj
2015-07-10 18:14:33 -04:00