Johannes Waldmann <[EMAIL PROTECTED]> writes: >> x :: Foo <- [ .. ] > > A related point: the Haskell definition states that For any type that is an instance of class Bounded as well as Enum, the following should hold: > >> enumFrom and enumFromThen should be defined with an implicit bound, thus: >> enumFrom x = enumFromTo x maxBound
> I think this should be enforced - > the *only* method in Enum should be `enumFromTo'. > > If one writes [ x .. ], then the compiler expands this to > `enumFromTo x maxBound', and therefore adds a `Bounded' constraint. > Likewise, [ .. y ] expands to `enumFromTo minBound y', No, "half" infinite list like [1..] are useful. > and [ .. ] to `enumFromTo minBound maxBound' . This I would not mind, I can not think of another reasonable translation. But why not define elements :: (Enum a, Bounded a) => [a] elements = [minBound .. maxBound] instead? > PS: and enumFromThenTo should just be removed, alongside n+k patterns :-) Or preferably the Floating and Double Enum instances... Feri. _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell