That was a bug in the revised implementation of `define-generics` for
the new expander. I've pushed a repair.

At Sun, 19 Jul 2015 22:34:36 -0400, "Alexander D. Knauth" wrote:
> This is a simplified example of something that worked in racket version 
> 6.2.0.4 from 2015-06-08, but is now broken in version 6.2.900.4 from 
> 2015-07-17.
> 
> gen-foo.rkt:
> #lang racket
> (provide gen:foo foo? foo/c (contract-out [bar (foo? . -> . any/c)]))
> (require racket/generic)
> (define-generics foo
>   (bar foo))
> 
> contract.rkt:
> #lang racket
> (require "gen-foo.rkt")
> (define (foo/c* c)
>   (foo/c
>    [bar (foo? . -> . c)]))
> 
> This works fine in the snapshot from last month, but in the current one, it 
> fail with this error:
> . redirect-generics: bar is not a method of generic interface gen:foo in: bar
> 
> One way to get around this is to export an uncontracted version from 
> gen-foo.rkt, and possibly put the `bar` contract in a separate, third module, 
> but why would this be broken now?
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to