
On Mon, 6 Sep 2010, Ashley Yakeley wrote:
countable: Countable, Searchable, Finite, Empty classes.
class Countable, for countable types class AtLeastOneCountable, for countable types that have at least one value class InfiniteCountable, for infinite countable types class Searchable, for types that can be searched over class Finite, for finite types class Empty, for empty types data Nothing, an empty type
Also includes these orphan instances:
instance (Searchable a,Eq b) => Eq (a -> b) instance (Finite a) => Foldable ((->) a) instance (Finite a) => Traversable ((->) a) instance (Show a,Finite a,Show b) => Show (a -> b)
Why must the domain be finite? I think infinite Strings produced by Show are not a problem, since the result of 'show infiniteList' is also infinite.