[racket] typed racket: equivalent to Any for function types?
As Any is supertype of all values, what is the equivalent type for function
types?
(Any -> Any) does not work because of the contra-variant requirement of the
argument.
(: f ((Any -> Any) -> True))
(define (f g) #t)
(f (lambda (x) x) #t) ;; works
(f (lambda: ([x : Integer]) #f)) ;; does not work
The error is:
Type Checker: Expected (Any -> Any), but got (Integer -> Any) in: (lambda:
((x : Integer)) #f)
If I understand it correctly, the type I'm looking for is (Bottom -> Any),
which satisfies the contra-variant and variant requirements for function
subtyping. However, the Bottom type doesn't seem to exist (at least at the
user-level, because I remember seeing some error messages that mentioned
Top and Bottom).
Thanks
--
Ismael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20111128/6c9d8954/attachment.html>