cartesian-profunctors
Safe HaskellNone
LanguageHaskell2010

Data.Finitary.Enum

Synopsis

Documentation

class Ord x => Enum x where Source #

Enum x is Finitary x but you can't get Cardinality n at type level.

Minimal complete definition

Nothing

Methods

enumeration :: FinFn x x Source #

withEnum :: (forall (n :: Nat). KnownNat n => (x -> Finite n) -> (Finite n -> x) -> r) -> r Source #

default withEnum :: Finitary x => (forall (n :: Nat). KnownNat n => (x -> Finite n) -> (Finite n -> x) -> r) -> r Source #

Instances

Instances details
Enum Void Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn Void Void Source #

withEnum :: (forall (n :: Nat). KnownNat n => (Void -> Finite n) -> (Finite n -> Void) -> r) -> r Source #

Enum Int16 Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn Int16 Int16 Source #

withEnum :: (forall (n :: Nat). KnownNat n => (Int16 -> Finite n) -> (Finite n -> Int16) -> r) -> r Source #

Enum Int32 Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn Int32 Int32 Source #

withEnum :: (forall (n :: Nat). KnownNat n => (Int32 -> Finite n) -> (Finite n -> Int32) -> r) -> r Source #

Enum Int64 Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn Int64 Int64 Source #

withEnum :: (forall (n :: Nat). KnownNat n => (Int64 -> Finite n) -> (Finite n -> Int64) -> r) -> r Source #

Enum Int8 Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn Int8 Int8 Source #

withEnum :: (forall (n :: Nat). KnownNat n => (Int8 -> Finite n) -> (Finite n -> Int8) -> r) -> r Source #

Enum Word16 Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn Word16 Word16 Source #

withEnum :: (forall (n :: Nat). KnownNat n => (Word16 -> Finite n) -> (Finite n -> Word16) -> r) -> r Source #

Enum Word32 Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn Word32 Word32 Source #

withEnum :: (forall (n :: Nat). KnownNat n => (Word32 -> Finite n) -> (Finite n -> Word32) -> r) -> r Source #

Enum Word64 Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn Word64 Word64 Source #

withEnum :: (forall (n :: Nat). KnownNat n => (Word64 -> Finite n) -> (Finite n -> Word64) -> r) -> r Source #

Enum Word8 Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn Word8 Word8 Source #

withEnum :: (forall (n :: Nat). KnownNat n => (Word8 -> Finite n) -> (Finite n -> Word8) -> r) -> r Source #

Enum Ordering Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn Ordering Ordering Source #

withEnum :: (forall (n :: Nat). KnownNat n => (Ordering -> Finite n) -> (Finite n -> Ordering) -> r) -> r Source #

Enum () Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn () () Source #

withEnum :: (forall (n :: Nat). KnownNat n => (() -> Finite n) -> (Finite n -> ()) -> r) -> r Source #

Enum Bool Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn Bool Bool Source #

withEnum :: (forall (n :: Nat). KnownNat n => (Bool -> Finite n) -> (Finite n -> Bool) -> r) -> r Source #

Enum Char Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn Char Char Source #

withEnum :: (forall (n :: Nat). KnownNat n => (Char -> Finite n) -> (Finite n -> Char) -> r) -> r Source #

Enum Int Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn Int Int Source #

withEnum :: (forall (n :: Nat). KnownNat n => (Int -> Finite n) -> (Finite n -> Int) -> r) -> r Source #

Enum Word Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn Word Word Source #

withEnum :: (forall (n :: Nat). KnownNat n => (Word -> Finite n) -> (Finite n -> Word) -> r) -> r Source #

PTraversable f => Enum (Shape f) Source # 
Instance details

Defined in Data.FunctorShape

Methods

enumeration :: FinFn (Shape f) (Shape f) Source #

withEnum :: (forall (n :: Nat). KnownNat n => (Shape f -> Finite n) -> (Finite n -> Shape f) -> r) -> r Source #

Enum x => Enum (Maybe x) Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn (Maybe x) (Maybe x) Source #

withEnum :: (forall (n :: Nat). KnownNat n => (Maybe x -> Finite n) -> (Finite n -> Maybe x) -> r) -> r Source #

(Enum x, Enum y) => Enum (Either x y) Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn (Either x y) (Either x y) Source #

withEnum :: (forall (n :: Nat). KnownNat n => (Either x y -> Finite n) -> (Finite n -> Either x y) -> r) -> r Source #

(Enum a, PTraversable t) => Enum (WrappedPTraversable t a) Source # 
Instance details

Defined in Data.PTraversable

Methods

enumeration :: FinFn (WrappedPTraversable t a) (WrappedPTraversable t a) Source #

withEnum :: (forall (n :: Nat). KnownNat n => (WrappedPTraversable t a -> Finite n) -> (Finite n -> WrappedPTraversable t a) -> r) -> r Source #

(Enum x, Enum y) => Enum (x, y) Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn (x, y) (x, y) Source #

withEnum :: (forall (n :: Nat). KnownNat n => ((x, y) -> Finite n) -> (Finite n -> (x, y)) -> r) -> r Source #

(Enum x1, Enum x2, Enum x3) => Enum (x1, x2, x3) Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn (x1, x2, x3) (x1, x2, x3) Source #

withEnum :: (forall (n :: Nat). KnownNat n => ((x1, x2, x3) -> Finite n) -> (Finite n -> (x1, x2, x3)) -> r) -> r Source #

(Enum x1, Enum x2, Enum x3, Enum x4) => Enum (x1, x2, x3, x4) Source # 
Instance details

Defined in Data.Finitary.Enum

Methods

enumeration :: FinFn (x1, x2, x3, x4) (x1, x2, x3, x4) Source #

withEnum :: (forall (n :: Nat). KnownNat n => ((x1, x2, x3, x4) -> Finite n) -> (Finite n -> (x1, x2, x3, x4)) -> r) -> r Source #

eqDefault :: Enum x => x -> x -> Bool Source #

compareDefault :: Enum x => x -> x -> Ordering Source #

enumList :: Enum x => [x] Source #

enum :: (Enum x, Alternative f) => f x Source #

coenum :: (Enum x, Decidable f, Divisible f) => f x Source #

cardinality :: Enum x => proxy x -> Int Source #

ptraverseFunction :: (Enum x, Cartesian p) => p a b -> p (x -> a) (x -> b) Source #