@hackage countable1.2

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. This turns out to include some infinite types, see http://math.andrej.com/2007/09/28/seemingly-impossible-functional-programs/.

  • class Finite, for finite types

  • class Singular, for singular (n = 1) types

  • class Empty, for empty (n = 0) types

Some orphan instances (in their own modules):

  • (Searchable a,Eq b) => Eq (a -> b)

  • Finite t => Foldable ((->) t)

  • Finite a => Traversable ((->) a)

  • (Show a,Finite a,Show b) => Show (a -> b)