typed-racket/typed-racket-test/succeed/require-struct.rkt
2014-12-16 10:07:25 -05:00

207 lines
5.2 KiB
Racket

#lang racket/load
(module untyped racket
(provide (all-defined-out))
(struct a (v))
(struct b a (v))
(struct c (v) #:constructor-name c-maker)
(struct d c (v) #:constructor-name d-maker)
(define-struct e (v))
(define-struct (f e) (v))
(struct g (v) #:extra-constructor-name make-g)
(struct h g (v) #:extra-constructor-name make-h))
(module typed typed/racket
(require/typed 'untyped
(struct a ((v : Integer)))
(struct (b a) ((v : String)))
(struct c ((v : Integer)) #:constructor-name c-maker)
(struct (d c) ((v : String)) #:constructor-name d-maker)
(struct e ((v : Integer)) #:extra-constructor-name make-e)
(struct (f e) ((v : String)) #:extra-constructor-name make-f))
(a 0)
(b 1 "2")
(c-maker 3)
(d-maker 4 "5")
(make-e 6)
(make-f 7 "8")
(e 9)
(f 10 "11"))
(require 'typed)
(module typed2 typed/racket/base
(require/typed 'untyped
(struct a ((v : Integer)))
(struct (b a) ((v : String)))
(struct c ((v : Integer)) #:constructor-name c-maker)
(struct (d c) ((v : String)) #:constructor-name d-maker)
(struct e ((v : Integer)) #:extra-constructor-name make-e)
(struct (f e) ((v : String)) #:extra-constructor-name make-f))
(a 0)
(b 1 "2")
(c-maker 3)
(d-maker 4 "5")
(make-e 6)
(make-f 7 "8")
(e 9)
(f 10 "11"))
(require 'typed2)
(module typed3 typed-scheme
(require/typed 'untyped
(struct a ((v : Integer)) #:constructor-name a)
(struct (b a) ((v : String)) #:constructor-name b)
(struct c ((v : Integer)) #:constructor-name c-maker)
(struct (d c) ((v : String)) #:constructor-name d-maker)
(struct e ((v : Integer)) #:extra-constructor-name make-e)
(struct (f e) ((v : String)) #:extra-constructor-name make-f)
(struct g ((v : Integer)))
(struct (h g) ((v : String))))
(a 0)
(b 1 "2")
(c-maker 3)
(d-maker 4 "5")
(make-e 6)
(make-f 7 "8")
(e 9)
(f 10 "11")
(make-g 12)
(make-h 13 "14")
(g 15)
(h 16 "17"))
(require 'typed3)
(module typed4 typed/scheme
(require/typed 'untyped
(struct a ((v : Integer)) #:constructor-name a)
(struct (b a) ((v : String)) #:constructor-name b)
(struct c ((v : Integer)) #:constructor-name c-maker)
(struct (d c) ((v : String)) #:constructor-name d-maker)
(struct e ((v : Integer)) #:extra-constructor-name make-e)
(struct (f e) ((v : String)) #:extra-constructor-name make-f)
(struct g ((v : Integer)))
(struct (h g) ((v : String))))
(a 0)
(b 1 "2")
(c-maker 3)
(d-maker 4 "5")
(make-e 6)
(make-f 7 "8")
(e 9)
(f 10 "11")
(make-g 12)
(make-h 13 "14")
(g 15)
(h 16 "17"))
(require 'typed4)
(module typed5 typed/scheme/base
(require/typed 'untyped
(struct a ((v : Integer)) #:constructor-name a)
(struct (b a) ((v : String)) #:constructor-name b)
(struct c ((v : Integer)) #:constructor-name c-maker)
(struct (d c) ((v : String)) #:constructor-name d-maker)
(struct e ((v : Integer)) #:extra-constructor-name make-e)
(struct (f e) ((v : String)) #:extra-constructor-name make-f)
(struct g ((v : Integer)))
(struct (h g) ((v : String))))
(a 0)
(b 1 "2")
(c-maker 3)
(d-maker 4 "5")
(make-e 6)
(make-f 7 "8")
(e 9)
(f 10 "11")
(make-g 12)
(make-h 13 "14")
(g 15)
(h 16 "17"))
(require 'typed5)
(module typed6 typed/racket
(require-typed-struct a ((v : Integer)) 'untyped)
(require-typed-struct (b a) ((v : String)) 'untyped)
(require-typed-struct c ((v : Integer)) #:constructor-name c-maker 'untyped)
(require-typed-struct (d c) ((v : String)) #:constructor-name d-maker 'untyped)
(require-typed-struct e ((v : Integer)) #:extra-constructor-name make-e 'untyped)
(require-typed-struct (f e) ((v : String)) #:extra-constructor-name make-f 'untyped)
(a 0)
(b 1 "2")
(c-maker 3)
(d-maker 4 "5")
(make-e 6)
(make-f 7 "8")
(e 9)
(f 10 "11"))
(require 'typed6)
(module typed7 typed/scheme
(require-typed-struct a ((v : Integer)) #:constructor-name a 'untyped)
(require-typed-struct (b a) ((v : String)) #:constructor-name b 'untyped)
(require-typed-struct c ((v : Integer)) #:constructor-name c-maker 'untyped)
(require-typed-struct (d c) ((v : String)) #:constructor-name d-maker 'untyped)
(require-typed-struct e ((v : Integer)) #:extra-constructor-name make-e 'untyped)
(require-typed-struct (f e) ((v : String)) #:extra-constructor-name make-f 'untyped)
(require-typed-struct g ((v : Integer)) 'untyped)
(require-typed-struct (h g) ((v : String)) 'untyped)
(a 0)
(b 1 "2")
(c-maker 3)
(d-maker 4 "5")
(make-e 6)
(make-f 7 "8")
(e 9)
(f 10 "11")
(make-g 12)
(make-h 13 "14")
(g 15)
(h 16 "17"))
(require 'typed7)
(module typed8 typed-scheme
(require-typed-struct a ((v : Integer)) #:constructor-name a 'untyped)
(require-typed-struct (b a) ((v : String)) #:constructor-name b 'untyped)
(require-typed-struct c ((v : Integer)) #:constructor-name c-maker 'untyped)
(require-typed-struct (d c) ((v : String)) #:constructor-name d-maker 'untyped)
(require-typed-struct e ((v : Integer)) #:extra-constructor-name make-e 'untyped)
(require-typed-struct (f e) ((v : String)) #:extra-constructor-name make-f 'untyped)
(require-typed-struct g ((v : Integer)) 'untyped)
(require-typed-struct (h g) ((v : String)) 'untyped)
(a 0)
(b 1 "2")
(c-maker 3)
(d-maker 4 "5")
(make-e 6)
(make-f 7 "8")
(e 9)
(f 10 "11")
(make-g 12)
(make-h 13 "14")
(g 15)
(h 16 "17"))
(require 'typed8)