On Aug 2, 2014 10:29 PM, "Bertram Felgenhauer" <bertram.felgenhauer@googlemail.com> wrote:
> The motivating example I've seen is using lazy natural numbers,
Natural numbers aren't an entirely legitimate instance of Num either, because they don't support negate. Of course, this is a good argument for the Num class itself being broken, but unless someone *actually* relies on genericLength for lazy Nats, I think it's a good enough excuse not to support it for genericLength when doing so effectively renders genericLength useless for anything else. Calling something "generic" for Num when it's really only generic for things that look like lazy naturals doesn't seem very sane.