countable-1.2: Countable, Searchable, Finite, Empty classes
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Searchable

Synopsis

Documentation

class Searchable a where Source #

It turns out there are Searchable instances that are not Finite. The (c -> s) instance is based on the algorithm at http://math.andrej.com/2007/09/28/seemingly-impossible-functional-programs/.

Methods

search :: (a -> Maybe b) -> Maybe b Source #

Instances

Instances details
Searchable Void Source # 
Instance details

Defined in Data.Searchable

Methods

search :: (Void -> Maybe b) -> Maybe b Source #

Searchable Int16 Source # 
Instance details

Defined in Data.Searchable

Methods

search :: (Int16 -> Maybe b) -> Maybe b Source #

Searchable Int32 Source # 
Instance details

Defined in Data.Searchable

Methods

search :: (Int32 -> Maybe b) -> Maybe b Source #

Searchable Int64 Source # 
Instance details

Defined in Data.Searchable

Methods

search :: (Int64 -> Maybe b) -> Maybe b Source #

Searchable Int8 Source # 
Instance details

Defined in Data.Searchable

Methods

search :: (Int8 -> Maybe b) -> Maybe b Source #

Searchable Word16 Source # 
Instance details

Defined in Data.Searchable

Methods

search :: (Word16 -> Maybe b) -> Maybe b Source #

Searchable Word32 Source # 
Instance details

Defined in Data.Searchable

Methods

search :: (Word32 -> Maybe b) -> Maybe b Source #

Searchable Word64 Source # 
Instance details

Defined in Data.Searchable

Methods

search :: (Word64 -> Maybe b) -> Maybe b Source #

Searchable Word8 Source # 
Instance details

Defined in Data.Searchable

Methods

search :: (Word8 -> Maybe b) -> Maybe b Source #

Searchable () Source # 
Instance details

Defined in Data.Searchable

Methods

search :: (() -> Maybe b) -> Maybe b Source #

Searchable Bool Source # 
Instance details

Defined in Data.Searchable

Methods

search :: (Bool -> Maybe b) -> Maybe b Source #

Searchable a => Searchable (Maybe a) Source # 
Instance details

Defined in Data.Searchable

Methods

search :: (Maybe a -> Maybe b) -> Maybe b Source #

(Searchable a, Searchable b) => Searchable (Either a b) Source # 
Instance details

Defined in Data.Searchable

Methods

search :: (Either a b -> Maybe b0) -> Maybe b0 Source #

(Searchable a, Searchable b) => Searchable (a, b) Source # 
Instance details

Defined in Data.Searchable

Methods

search :: ((a, b) -> Maybe b0) -> Maybe b0 Source #

(Countable c, Searchable s) => Searchable (c -> s) Source # 
Instance details

Defined in Data.Searchable

Methods

search :: ((c -> s) -> Maybe b) -> Maybe b Source #

forsome :: Searchable a => (a -> Bool) -> Bool Source #

forevery :: Searchable a => (a -> Bool) -> Bool Source #

class (Searchable a, Countable a) => Finite a where Source #

There are a finite number of values (possibly zero).

Minimal complete definition

allValues

Methods

allValues :: [a] Source #

Not necessarily in counting order.

assemble :: forall b f. Applicative f => (a -> f b) -> f (a -> b) Source #

Instances

Instances details
Finite Void Source # 
Instance details

Defined in Data.Searchable

Methods

allValues :: [Void] Source #

assemble :: forall b f. Applicative f => (Void -> f b) -> f (Void -> b) Source #

Finite Int16 Source # 
Instance details

Defined in Data.Searchable

Methods

allValues :: [Int16] Source #

assemble :: forall b f. Applicative f => (Int16 -> f b) -> f (Int16 -> b) Source #

Finite Int32 Source # 
Instance details

Defined in Data.Searchable

Methods

allValues :: [Int32] Source #

assemble :: forall b f. Applicative f => (Int32 -> f b) -> f (Int32 -> b) Source #

Finite Int64 Source # 
Instance details

Defined in Data.Searchable

Methods

allValues :: [Int64] Source #

assemble :: forall b f. Applicative f => (Int64 -> f b) -> f (Int64 -> b) Source #

Finite Int8 Source # 
Instance details

Defined in Data.Searchable

Methods

allValues :: [Int8] Source #

assemble :: forall b f. Applicative f => (Int8 -> f b) -> f (Int8 -> b) Source #

Finite Word16 Source # 
Instance details

Defined in Data.Searchable

Methods

allValues :: [Word16] Source #

assemble :: forall b f. Applicative f => (Word16 -> f b) -> f (Word16 -> b) Source #

Finite Word32 Source # 
Instance details

Defined in Data.Searchable

Methods

allValues :: [Word32] Source #

assemble :: forall b f. Applicative f => (Word32 -> f b) -> f (Word32 -> b) Source #

Finite Word64 Source # 
Instance details

Defined in Data.Searchable

Methods

allValues :: [Word64] Source #

assemble :: forall b f. Applicative f => (Word64 -> f b) -> f (Word64 -> b) Source #

Finite Word8 Source # 
Instance details

Defined in Data.Searchable

Methods

allValues :: [Word8] Source #

assemble :: forall b f. Applicative f => (Word8 -> f b) -> f (Word8 -> b) Source #

Finite () Source # 
Instance details

Defined in Data.Searchable

Methods

allValues :: [()] Source #

assemble :: forall b f. Applicative f => (() -> f b) -> f (() -> b) Source #

Finite Bool Source # 
Instance details

Defined in Data.Searchable

Methods

allValues :: [Bool] Source #

assemble :: forall b f. Applicative f => (Bool -> f b) -> f (Bool -> b) Source #

Finite a => Finite (Maybe a) Source # 
Instance details

Defined in Data.Searchable

Methods

allValues :: [Maybe a] Source #

assemble :: forall b f. Applicative f => (Maybe a -> f b) -> f (Maybe a -> b) Source #

(Finite a, Finite b) => Finite (Either a b) Source # 
Instance details

Defined in Data.Searchable

Methods

allValues :: [Either a b] Source #

assemble :: forall b0 f. Applicative f => (Either a b -> f b0) -> f (Either a b -> b0) Source #

(Finite a, Finite b) => Finite (a, b) Source # 
Instance details

Defined in Data.Searchable

Methods

allValues :: [(a, b)] Source #

assemble :: forall b0 f. Applicative f => ((a, b) -> f b0) -> f ((a, b) -> b0) Source #

(Finite a, Finite b) => Finite (a -> b) Source # 
Instance details

Defined in Data.Function.Eq

Methods

allValues :: [a -> b] Source #

assemble :: forall b0 f. Applicative f => ((a -> b) -> f b0) -> f ((a -> b) -> b0) Source #

finiteSearch :: Finite a => (a -> Maybe b) -> Maybe b Source #