diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/private/type-contract.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/private/type-contract.rkt index 4e669d89..7b52fa93 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/private/type-contract.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/private/type-contract.rkt @@ -9,7 +9,7 @@ (utils tc-utils) (env type-name-env) (rep rep-utils) - (types resolve union utils) + (types resolve union utils kw-types) (prefix-in t: (types abbrev numeric-tower)) (private parse-type syntax-properties) racket/match racket/syntax racket/list diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/kw-types.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/kw-types.rkt index 9b59c242..8263999a 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/kw-types.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/kw-types.rkt @@ -275,4 +275,9 @@ (make-PolyDots names (loop f))] [t t])))) -(provide kw-convert kw-unconvert opt-convert) +;; partition-kws : (Listof Keyword) -> (values (Listof Keyword) (Listof Keyword)) +;; Partition keywords by whether they are mandatory or not +(define (partition-kws kws) + (partition (match-lambda [(Keyword: _ _ mand?) mand?]) kws)) + +(provide kw-convert kw-unconvert opt-convert partition-kws)