racket/collects/deinprogramm/signature
Mike Sperber c080940d02 Fix infinite recursive signatures.
Such as this, submitted by Torsten Grust:

(define-record-procedures-parametric stream_ stream-of
  make-stream
  stream?
  (stream-head stream-tail))

(define stream
  (lambda (t)
    (signature (stream-of t (-> (stream t))))))

(: from (number -> (stream number)))
(define from
  (lambda (n)
    (make-stream n (lambda () (from (+ n 1))))))

(: foo (stream number))
(define foo (from 1))

The problem was that the arbitaries got evaluated too eagerly.
2011-12-18 14:18:42 +01:00
..
info.rkt Add tool.rkt needed for "Disable Signature Check". 2010-12-15 08:17:57 +01:00
module-begin.rkt generalized `begin-for-syntax' 2011-09-08 14:06:00 -06:00
signature-english.rkt Provide English and German versions of deinprogramm/signature/signature. 2010-10-08 11:19:38 +02:00
signature-german.rkt Provide English and German versions of deinprogramm/signature/signature. 2010-10-08 11:19:38 +02:00
signature-syntax.rkt Don't use teach-equal?' for one-of' signature. 2010-11-26 11:10:29 +01:00
signature-unit.rkt adjust HtDP teaching languages' first and rest so that they accept circular lists. 2011-10-21 08:09:34 -05:00
signature.rkt Fix infinite recursive signatures. 2011-12-18 14:18:42 +01:00
tool.rkt Unbreak "Enable signature checking". 2011-10-21 20:43:50 +02:00