[racket-dev] [plt] Push #23181: master branch updated

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Sat Aug 6 14:58:12 EDT 2011

On Sat, Aug 6, 2011 at 1:53 PM, Casey Klein
<clklein at eecs.northwestern.edu> wrote:
> On Sat, Aug 6, 2011 at 10:43 AM, Matthias Felleisen
> <matthias at ccs.neu.edu> wrote:
>> 1. I like Robby's mode suggestion.
>> 2. I prefer shorter keywords, e.g., define-judgment.
> I'm having trouble reconciling these comments. Robby's suggestion, if
> I understand it correctly, is to overload the `define-relation' name
> instead of choosing a new one. If you supply the #:mode keyword, you
> get the `define-judgment-form' behavior (inputs and outputs, static
> checking, the `judgment-holds' syntax for application); if not, you
> get the current `define-relation' behavior.

My suggestion was meant to be separate from the overloading thing. You
could use a #:mode even for define-judgment.

(Casey is referring to the idea that define-relation is kind of like
define-judgment but where you have an all-output mode as the default.)

> Do you mean keep the forms separate but use the name `define-judgment'
> for the new one? I intentionally avoided that name because what it
> defines, for example `sum', is not itself a judgment. Judgments are
> uses of that thing, i.e., assertions about particular objects, for
> example (sum z z z).
>> 3. Why is this in github and not in the docs?
> Oh, good idea!

Posted on the dev mailing list.