On 2012-04-27 13:17:36 -0500, Robby Findler wrote:
> Specifically, it seems like I can add the contract
> (unconstrained-domain-> any) to each method to get it to be opaque
> without actually contributing anything of value.
>
> [...]
>
> Or is there something else going on there that I'm missing?

The primary reason that I added opaque contracts is that they are needed
for Typed Racket's eventual class/object support.

A secondary reason is for enforcing contract coverage. You're right
though: you could get around this by writing a loose contract or by
only specifying the name.[1] The intention is that the contract error
would encourage people to write useful contracts (my mistake for saying
"force"---it doesn't quite do that) rather than just bypass it.

[1]: e.g., (class/c #:opaque m) will allow
     (class object% (super-new) (define/public (m) ...))

Cheers,
Asumu
_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev

Reply via email to