[racket] REPL @ Runtime Contract Modification?

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Thu Jun 27 12:14:58 EDT 2013

Got it. 

Assuming f is assignable: 
-- define a new version of the function with its improved contract
  (define/contract fprime ...)
-- (set! f fprime) 





On Jun 27, 2013, at 10:53 AM, Sean Kanaley <skanaley at gmail.com> wrote:

> All of Racket seems to be available while debugging GUIs.  I can query state and launch new error-free dialogs while the GUI sits there with its broken dialog.  I was thinking then that there might be some way to change the associated contract of the offending function while the GUI patiently waits for its next event.
> 
> Also it was type [A]...I made the mistake of calling the range of a function like "member" "boolean?".
> 
> The goal is to enter:
> 
> (set-contract! <function> (-> ... (listof symbol?))
> 
> and carry on.
> 
> On 06/27/2013 10:32 AM, Matthias Felleisen wrote:
>> I am not sure what you're asking.
>> 
>> -- Once your program has raised a contract error and your program didn't handle it, you're stuck.
>> 
>> -- Did the contract error suggest
>> 
>>  [A] you formulated the wrong contract (the program is working but the contract is too stringent)
>>  [B] you program has a bug
>> 
>> Before you restart try to figure out which one is which and fix something.
>> 
>> 
>> 
>> 
>> On Jun 27, 2013, at 12:35 AM, Sean Kanaley <skanaley at gmail.com> wrote:
>> 
>>> Hello,
>>> 
>>> I'm debugging a heavily stateful GUI app that has reached a very specific state but has come across a contract error.  Is there some way to modify the contract and proceed or I must I reevaluate and run the gui and attempt to duplicate the state?
>>> ____________________
>>> Racket Users list:
>>> http://lists.racket-lang.org/users
> 



Posted on the users mailing list.