The following gives an error of "Expected Nothing, but got D in elem."
Type checking error?

#lang typed/racket/base

(struct: (D C) Collection ([append   : (D -> Void)]
                           [build    : (-> C)]))

(: List-Builder (All (D) -> (Collection D (Listof D))))
(define (List-Builder)

  (: lst (Listof D))
  (define lst '())

  (Collection (λ: ((datum : D))
                (set! lst (cons datum lst)))
              (λ () lst)))

(: build-Collection (All (D C) (Collection D C)-> C))
(define (build-Collection collection)
  ((Collection-build collection)))

(: append-Collection (All (D C) (Collection D C) D -> Void))
(define (append-Collection coll elem)
  ((Collection-append coll) elem))
____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to