Ten minutes in, I've hit a snag. I'd like the stuff in math/functions to have precise types. For example, log1p could have the type

  (case-> (Zero -> Zero)
          (Float -> Float)
          (Real -> Real))

It was easy to get the implementation to typecheck, but when I tried to plot it in untyped Racket, I got this:

Type Checker: The type of log1p cannot be converted to a contract in: log1p

I really don't want to have two versions of the library. Could TR use the most general type (Real -> Real) as the contract? Or would that be unsound?

Neil ⊥
_________________________
 Racket Developers list:
 http://lists.racket-lang.org/dev

Reply via email to