countable-1.0: Countable, Searchable, Finite, Empty classes

countable-1.0: 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 Empty, for empty types
  • data Nothing, an empty type

Some orphan instances:

  • (Searchable a,Eq b) => Eq (a -> b)
  • (Finite t) => Foldable ((->) t)
  • (Finite a) => Traversable ((->) a)
  • (Show a,Finite a,Show b) => Show (a -> b)

Signatures

Modules