The documentation for make-contract 
<http://docs.racket-lang.org/reference/Building_New_Contract_Combinators.html?q=make-contract#(def._((lib._racket/contract/private/prop..rkt)._make-contract))>
 and similar functions includes an optional #:val-first-projection keyword 
argument. What is this for? How does it differ from the #:projection argument?

The documentation does include this note:

> The precise details of the val-first-projection argument are subject to 
> change.

I don’t know how long that message has been there, but I somehow doubt that the 
details are still “subject to change”. Could that argument be documented? I’d 
at least like to understand what it’s for and how I’m supposed to use it in new 
contract combinators. Also, what happens if I leave it out or pass #f?

As far as I can tell, the primary difference is that the procedure supplied  
for val-first-projection takes an additional curried argument, the “negative 
party”. This is handled specially for contract failures that fail on this 
“first projection” by passing the argument to raise-blame-error via an 
undocumented keyword argument, #:missing-party. What does this do, exactly?

Thanks,
Alexis
____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to