On Fri, Aug 03, 2007 at 01:45:03AM +0100, Neil Mitchell wrote:
> Hi
> 
> Catch (www.cs.york.ac.uk/~ndm/catch) can infer that certain uses of
> numbers fit into the {Neg, Zero, One, Pos} abstraction - so for
> example it can infer that length returns {Zero, One, Pos}, but not
> Neg. If you then do:
> 
> xs !! length ys
> 
> It will detect that length ys is natural, and will be safe. However,
> if you pass any arbitrary value as the index to !! it will warn of a
> possible pattern match error.

I hope catch doesn't actually think that's safe, because it's not - set
ys = xs = [1,2,3,4,5], you'll get an index out of range error.  (Yes, I
deliberately chose a list longer than 4 elements).

Stefan

Attachment: signature.asc
Description: Digital signature

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to