On Jan 14, 2011, at 4:22 PM, Robby Findler wrote:
> No, actually in this case the user message is also wrong. If you trace
> thru the module dag, you'll see it.
Just to check, are you talking about the second series of modules, or the
first? The problem in the first is likely a variation of PR11084, as Ryan
said. In the second, I get:
contract violation: expected <integer?>, given: 3.5
contract on f from (file /Users/sstrickl/c.rkt) via (file
/Users/sstrickl/a.rkt), blaming (file /Users/sstrickl/b.rkt)
contract: (-> integer? integer?)
at: /Users/sstrickl/c.rkt:4.1
and if I'm breaking that text down correctly, that's:
positive: c
user: a
negative: b
Which seems right to me, according to what I said. That is, b entered into a
contract with c about value f. b reprovided f (with no contract) to a, who
actually used the value via the expression `(f 3.5)'.
So a misused the value, but b was responsible for its misuse (since it gave it
to a without any additional protection). This is, of course, going by the
interpretation of uncontracted reprovides being equivalent to reproviding with
the contract any/c.
Have I missed anything here?
Stevie
_________________________________________________
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/dev