<p><br>
On Aug 13, 2011 1:35 PM, "Carl Eastlund" <<a href="mailto:cce@ccs.neu.edu">cce@ccs.neu.edu</a>> wrote:<br>
><br>
> On Sat, Aug 13, 2011 at 1:26 PM, Matthias Felleisen<br>
> <<a href="mailto:matthias@ccs.neu.edu">matthias@ccs.neu.edu</a>> wrote:<br>
> ><br>
> > On Aug 13, 2011, at 12:58 PM, Sam Tobin-Hochstadt wrote:<br>
> ><br>
> >> On Sat, Aug 13, 2011 at 12:51 PM, Eli Barzilay <<a href="mailto:eli@barzilay.org">eli@barzilay.org</a>> wrote:<br>
> >>> 10 minutes ago, Sam Tobin-Hochstadt wrote:<br>
> >>>> `match' also currently adds a syntax property to help the Typed<br>
> >>>> Racket type checker understand the expansion. Like 'disappeared-use<br>
> >>>> for Check Syntax, this property is in theory semantically<br>
> >>>> independent of Typed Racket, but only used there.<br>
> >>><br>
> >>> No, when your property is called `typechecker:called-in-tail-position'<br>
> >>> it is not independent of a "typecheker". It will be, if it gets a<br>
> >>> generic name, and gets documented which turns it from a backdoor for a<br>
> >>> backward dependency to a known API.<br>
> >><br>
> >> The *semantic* independence of the property and the typechecker<br>
> >> implementation is not determined either by the name of the property or<br>
> >> the documentation.<br>
> ><br>
> ><br>
> > There are two levels of semantics here:<br>
> > -- operational semantics of your module, which makes you correct<br>
> > -- 'in spirit' semantics, which makes Eli correct.<br>
> ><br>
> > I will say that even though I cannot define 'in spirit' formally,<br>
> > I am with Eli here.<br>
><br>
> How about instead of "in spirit", we focus on program logic. There is<br>
> no semantic dependence on the typechecker -- Racket can tell what the<br>
> program does without it. However, programmers cannot read that code<br>
> and know what it is for and whether it is correct without reference to<br>
> the typechecker. That's a meaningful dependency. It makes<br>
> maintaining that line of code 100% dependent on the typechecker.</p>
<p>What I mean by "semantically independent" I mean exactly that your statement is not correct. The meaning of the property is defined without reference to the type checker. It means "this let-bound function is probably called in tail position wrt the let.". This says nothing about types, and can be reasoned about independently.</p>
<p>Sam<br>
</p>