www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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)])