witness-0.6.1: values that witness types
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Type.Witness.Specific.List.Element

Documentation

data ListElementType kk t where Source #

Constructors

FirstElementType :: ListElementType (t ': tt) t 
RestElementType :: ListElementType aa t -> ListElementType (a ': aa) t 

Instances

Instances details
TestEquality (ListElementType tt :: k -> Type) Source # 
Instance details

Defined in Data.Type.Witness.Specific.List.Element

Methods

testEquality :: forall (a :: k0) (b :: k0). ListElementType tt a -> ListElementType tt b -> Maybe (a :~: b) #

Is (ListType (Proxy :: k -> Type)) tt => ListElementWitness (ListElementType tt :: k -> Type) Source # 
Instance details

Defined in Data.Type.Witness.General.ListElement

Associated Types

type WitnessTypeList (ListElementType tt) :: [k] Source #

TestOrder (ListElementType tt :: k -> Type) Source # 
Instance details

Defined in Data.Type.Witness.Specific.List.Element

Methods

testCompare :: forall (a :: k0) (b :: k0). ListElementType tt a -> ListElementType tt b -> WOrdering a b Source #

Countable (ListElementType ('[] :: [k]) t) Source # 
Instance details

Defined in Data.Type.Witness.Specific.List.Element

Empty (ListElementType ('[] :: [k]) t) Source # 
Instance details

Defined in Data.Type.Witness.Specific.List.Element

Methods

never :: ListElementType '[] t -> a #

Finite (ListElementType ('[] :: [k]) t) Source # 
Instance details

Defined in Data.Type.Witness.Specific.List.Element

Methods

allValues :: [ListElementType '[] t] #

assemble :: forall b f. Applicative f => (ListElementType '[] t -> f b) -> f (ListElementType '[] t -> b) #

Searchable (ListElementType ('[] :: [k]) t) Source # 
Instance details

Defined in Data.Type.Witness.Specific.List.Element

Methods

search :: (ListElementType '[] t -> Maybe b) -> Maybe b #

Eq (ListElementType tt t) Source # 
Instance details

Defined in Data.Type.Witness.Specific.List.Element

Methods

(==) :: ListElementType tt t -> ListElementType tt t -> Bool #

(/=) :: ListElementType tt t -> ListElementType tt t -> Bool #

type WitnessTypeList (ListElementType tt :: k -> Type) Source # 
Instance details

Defined in Data.Type.Witness.General.ListElement

type WitnessTypeList (ListElementType tt :: k -> Type) = tt

pickListElement :: forall k (w :: k -> Type) (t :: k) (lt :: [k]). ListElementType lt t -> ListType w lt -> w t Source #

lookUpListElement :: forall k (w :: k -> Type) (t :: k) (lt :: [k]). TestEquality w => w t -> ListType w lt -> Maybe (ListElementType lt t) Source #