diff --git a/implementations/racket/preserves/preserves-schema/compiler.rkt b/implementations/racket/preserves/preserves-schema/compiler.rkt index 0ff0c3a..33f39f5 100644 --- a/implementations/racket/preserves/preserves-schema/compiler.rkt +++ b/implementations/racket/preserves/preserves-schema/compiler.rkt @@ -94,6 +94,8 @@ (cons (struct-stx (list name variant-name) '()) acc)] [_ (cons (struct-stx (list name variant-name) '(value)) acc)]))] + [(ty-unit) + (cons (struct-stx (list name) '()) acc)] [(ty-record fields) (cons (struct-stx (list name) (map car fields)) acc)] [_ diff --git a/implementations/racket/preserves/preserves-schema/gen/schema.rkt b/implementations/racket/preserves/preserves-schema/gen/schema.rkt index c0ed618..e8c635c 100644 --- a/implementations/racket/preserves/preserves-schema/gen/schema.rkt +++ b/implementations/racket/preserves/preserves-schema/gen/schema.rkt @@ -74,6 +74,7 @@ (SimplePattern-setof? p) (SimplePattern-dictof? p) (SimplePattern-Ref? p))) + (struct Version () #:prefab) (begin (define (parse-AtomKind input) (match @@ -362,7 +363,7 @@ (parse-success-or-error 'parse-SimplePattern parse-SimplePattern))) (begin (define (parse-Version input) - (match input ((and dest (== '1)) (void)) (_ eof))) + (match input ((and dest (== '1)) (Version)) (_ eof))) (define parse-Version! (parse-success-or-error 'parse-Version parse-Version))) (define (AtomKind->preserves input) @@ -519,4 +520,4 @@ (SimplePattern->preserves $key) (SimplePattern->preserves $value)))) ((SimplePattern-Ref src) (Ref->preserves src)))) - (define (Version->preserves input) (match input ((? void?) '1)))) + (define (Version->preserves input) (match input ((Version) '1)))) diff --git a/implementations/racket/preserves/preserves-schema/parser.rkt b/implementations/racket/preserves/preserves-schema/parser.rkt index 7a09233..8fdef8e 100644 --- a/implementations/racket/preserves/preserves-schema/parser.rkt +++ b/implementations/racket/preserves/preserves-schema/parser.rkt @@ -41,7 +41,7 @@ (define (construct name wrap? ty) (match ty [(ty-record fields) `(,name ,@(map escape (map car fields)))] - [(ty-unit) (if wrap? `(,name) `(void))] + [(ty-unit) `(,name)] [_ (if wrap? `(,name dest) 'dest)])) (define (maybe-dest dest-pat-stx pat) diff --git a/implementations/racket/preserves/preserves-schema/unparser.rkt b/implementations/racket/preserves/preserves-schema/unparser.rkt index 87f4b81..36041e6 100644 --- a/implementations/racket/preserves/preserves-schema/unparser.rkt +++ b/implementations/racket/preserves/preserves-schema/unparser.rkt @@ -40,7 +40,7 @@ (define (deconstruct name wrap? ty) (match ty [(ty-record fields) `(,name ,@(map escape (map car fields)))] - [(ty-unit) (if wrap? `(,name) '(? void?))] + [(ty-unit) `(,name)] [_ (if wrap? `(,name src) 'src)])) (define (pattern->unparser pattern src-stx)