(The intuition here is that enter! puts you _inside_ the module and contracts are not checked there.)
Robby On Wed, Aug 10, 2011 at 9:12 PM, Asumu Takikawa <[email protected]> wrote: > Whoops, meant to actually send this to the list: > > On 2011-08-11 01:13:50 +0200, Wojciech Kaczmarek wrote: >> The problem I ran into with this workflow is that contracts for modul >> functions seem to *be not triggered when the module was loaded via >> enter!.* > > It seems that when a module is entered via enter! then higher order > contracts are not applied. So a contract like (-> number? number?) will > not be applied assuming you are using provide/contract. First order > contracts like number? are still checked. > > In general, the provide forms seem to be ignored since, for example, > a renamed identifier using "rename-out" will be undefined if you use > enter!. > > You can use define/contract if you need both enter! and higher-order > contract checking. This sets up the contract boundary at the definition > site, not the module. > > Cheers, > Asumu > _________________________________________________ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/users > _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

