[racket-dev] Typed Racket and ADTs

From: Shriram Krishnamurthi (sk at cs.brown.edu)
Date: Mon Aug 2 13:56:58 EDT 2010

Why not provide the flip?  You're already willing to wrap things (in
contracts).  Couldn't you do the wrapping that I have to do by hand?
(Maybe I'm missing something.)  It would make the language more
symmetric, and the result of this symmetry would be not only symmetry
but an actual nameable virtue (ADTs).  [To repeat: maybe I'm missing


On Mon, Aug 2, 2010 at 11:51 AM, Sam Tobin-Hochstadt <samth at ccs.neu.edu> wrote:
> On Mon, Aug 2, 2010 at 11:38 AM, Shriram Krishnamurthi <sk at cs.brown.edu> wrote:
>> So why do you have an opaque require?
> The opaque form of `require/typed' is to allow requiring operations on
> an ADT for which only a predicate is known. It supports using
> `require/typed' with ADTs defined in exactly the way Matthias
> suggests. For example, if there was no built-in `String' type, then
> the opaque form of `require/typed' would be the way to specify it.
> --
> sam th
> samth at ccs.neu.edu

Posted on the dev mailing list.