typed-racket/typed-racket-test/succeed/refinements-and-aliases.rkt
2017-11-05 15:32:21 -05:00

16 lines
443 B
Racket

#lang typed/racket/base #:with-refinements
(define-type Pear (Pair Integer Integer))
(define-type SomeVectorsInAPair (Pair (Vectorof String)
(Vectorof String)))
(define-type Pear1
(Refine [p : Pear] (= (car p) 5)))
(define-type Pear2
(Refine [p : Pear] (= (cdr p) 5)))
(define-type Vec
(Refine [p : SomeVectorsInAPair]
(= (vector-length (car p))
(vector-length (cdr p)))))