[racket] [Typed Racket] define-predicate for union with functions

From: Paul Leger (pleger at gmail.com)
Date: Mon May 20 04:32:11 EDT 2013

Hi all,
       Maybe, this question is very easy. In the following code, I try 
defining a predicate for T2, but I cannot because T1 it is a function.

(define-type T1 (Symbol -> Any) )
(define-type T2 (U Symbol Number T1))

;(define-predicate T1? Procedure) ;this line is useless

(define-predicate T2? T2)

 > Type Checker: Type T2 could not be converted to a contract. in: T2

My unsuccessful answer is:
   (define-type T2 (U Symbol Number Procedure))

I do not like it because I lose the relationship between T1 and T2. Are 
there some possibility

Thank in advance,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20130520/ccf9ba1d/attachment.html>

Posted on the users mailing list.