
On Apr 5, 2006, at 11:34 AM, Nils Anders Danielsson wrote:
On Wed, 05 Apr 2006, Robert Dockins
wrote: So you think it would be clearer if I just ignored bottom as well?
It would be imprecise instead of wrong. :)
I suppose if you force the reader to evaluate documentation non- deterministically, then you can presume your documentation is correct if there is any correct interpretation they might have chosen ;-)
Another option is to go for some sort of approximate semantics which still includes bottoms. You could for instance assume that bottom = const bottom, and state your results in that context. Verifying the results would still mean a lot of work, though.
Humm. Well, I'd actually prefer not to have to say anything about bottom. I'm really only interested in telling the user that output of a function is not completely determined by the contract. <shakes fist> Dang you bottom! I'll have to think some more about what to do here and see if there's a nice way to sidestep the issue entirely.
By the way, does your library have a QuickCheck test suite?
Yes indeed.
In that case it is often not too hard to test properties involving bottoms. I have a library which may be of help: http://www.cs.chalmers.se/~nad/software/ChasingBottoms/docs/
Nice! I notice however, that it relies on exceptions and implicit parameters. I'm willing to accept less portability in the test suite than in the library proper, but I feel that implicit parameters are pushing it a bit, since they appear unlikely to make it into H'.
-- /NAD
Rob Dockins Speak softly and drive a Sherman tank. Laugh hard; it's a long way to the bank. -- TMBG