test-tagged-define.rkt (2002B)
1 #lang typed/racket 2 3 (require phc-adt phc-toolkit type-expander "ck.rkt") 4 (adt-init) 5 6 (module m-abc typed/racket 7 (require phc-adt phc-toolkit type-expander "ck.rkt") 8 (adt-init) 9 10 (define-tagged t0 tagged-fc tagged-fb tagged-fa) 11 (define c0 t0) 12 (provide (rename-out [t0 t0-cba] 13 [c0 c0-cba]))) 14 15 (module m-xyz typed/racket 16 (require phc-adt phc-toolkit type-expander "ck.rkt") 17 (adt-init) 18 19 (define-tagged t0 tagged-fx tagged-fy tagged-fz) 20 (define c0 t0) 21 (provide (rename-out [t0 t0-xyz] 22 [c0 c0-xyz]))) 23 24 (require 'm-abc 25 'm-xyz) 26 27 (define-tagged t0 tagged-fa tagged-fb tagged-fc) 28 (define c0 t0) 29 30 (ck (t0 'a "b" 3) (t0 Symbol String Number)) 31 (ck (c0 'a "b" 3) (t0 Symbol String Number)) 32 (ck-not (t0 'a "b" 3) (t0 Number Number Number)) 33 (ck-not (c0 'a "b" 3) (t0 Number Number Number)) 34 35 (ck (t0 'a "b" 3) (t0-cba Number String Symbol)) 36 (ck (c0 'a "b" 3) (t0-cba Number String Symbol)) 37 (ck-not (t0 'a "b" 3) (t0-cba Number Number Number)) 38 (ck-not (c0 'a "b" 3) (t0-cba Number Number Number)) 39 40 (ck (t0-cba 'a "b" 3) (t0 Number String Symbol)) 41 (ck (c0-cba 'a "b" 3) (t0 Number String Symbol)) 42 (ck-not (t0-cba 'a "b" 3) (t0 Number Number Number)) 43 (ck-not (c0-cba 'a "b" 3) (t0 Number Number Number)) 44 45 (ck (t0-cba 'a "b" 3) (t0-cba Symbol String Number)) 46 (ck (c0-cba 'a "b" 3) (t0-cba Symbol String Number)) 47 (ck-not (t0-cba 'a "b" 3) (t0-cba Number Number Number)) 48 (ck-not (c0-cba 'a "b" 3) (t0-cba Number Number Number)) 49 50 (ck (t0-xyz 'a "b" 3) (t0-xyz Symbol String Number)) 51 (ck (c0-xyz 'a "b" 3) (t0-xyz Symbol String Number)) 52 (ck-not (t0-xyz 'a "b" 3) (t0 Number Number Number)) 53 (ck-not (c0-xyz 'a "b" 3) (t0 Number Number Number)) 54 (ck-not (t0 'a "b" 3) (t0-xyz Symbol String Number)) 55 (ck-not (c0 'a "b" 3) (t0-xyz Symbol String Number)) 56 57 (check-equal?-classes: 58 [#:name "abc" 59 (t0 'a "b" 3) 60 (c0 'a "b" 3) 61 (t0-cba 3 "b" 'a) 62 (c0-cba 3 "b" 'a)] 63 [#:name "cba" 64 (t0 3 "b" 'a) 65 (c0 3 "b" 'a) 66 (t0-cba 'a "b" 3) 67 (c0-cba 'a "b" 3)])