Commit Graph

12 Commits

Author SHA1 Message Date
Stephen Chang
115aae8e73 completely separate type and kind api, etc; generalize type environment
Previously, "type" functions were reused a lot to manipulate kinds, and other
metadata defined via `define-syntax-category`, but this meant it was impossible
to define separate behavior for some type and kind operations, e.g., type=? and
kind=?. This commit defines a separate api for each `define-syntax-category`
declaration.

Also, every `define-syntax-category` defines a new `define-NAMEd-syntax` form,
which implicitly uses the proper parameters, e.g., `define-kinded-syntax` uses
`kindcheck?`, `current-kind-eval`, and the ':: kind key by default (whereas
before, it was using typecheck?, type-eval, etc).

This commit breaks backwards compatibility. The most likely breakage results
from using a different default key for kinds. It used to be ':, the same as
types, but now the default is '::.

This commit also generalizes the contexts used with `define-NAMEd-syntax` and
`infer`.
- all contexts now accept arbitrary key-values associated with a variable
- all contexts use let* semantics, where a binding is in scope for subsequent
  bindings; this means that one environment is sufficient in most scenarioes,
  e.g., type and term vars can be mixed (if properly ordered)
- environments allow lone identifiers, which are treated as type variables by
  default
2017-02-08 13:07:24 -05:00
Stephen Chang
abcee6e9db bump racket dep; fix lens dep 2017-01-26 14:56:15 -05:00
Stephen Chang
f7de6fda4c remove lens-unstable dep
- add racket 6.4 dep
2017-01-26 13:54:46 -05:00
Stephen Chang
9f9294dc4c reduce lens dependency to lens-common and lens-unstable 2017-01-25 14:18:13 -05:00
Stephen Chang
6618f0e038 remove dependency on typed racket and sweet-exp 2017-01-25 10:47:42 -05:00
Georges Dupéron
27e8d3d31a Added missing dependency on typed-racket-lib 2016-10-27 01:29:27 +02:00
AlexKnauth
41491136b6 put the guide and reference onto separate pages 2016-09-30 14:44:41 -04:00
Stephen Chang
590c51bbac remove rosette dep; dont build rosette files 2016-09-30 12:51:38 -04:00
AlexKnauth
9d57b01a11 add missing build-deps 2016-09-28 13:46:51 -04:00
AlexKnauth
d5b46b9ee4 add rackunit-lib as a build-dep 2016-09-17 17:55:44 -04:00
Stephen Chang
ad37a45a69 update deps 2016-07-28 12:26:47 -04:00
AlexKnauth
358f997065 reorganize 2016-06-28 13:22:58 -04:00