| Safe Haskell | Safe |
|---|---|
| Language | Haskell98 |
Data.Witness.Representative
- class Eq1 (p :: k -> *) where
- isWitnessRepresentative :: Dict (Is rep a) -> rep a
- class Eq1 rep => Representative (rep :: k -> *) where
- withRepresentative :: forall (rep :: k -> *) r. Representative rep => (forall (a :: k). Is rep a => rep a -> r) -> forall (b :: k). rep b -> r
- class Representative rep => Is (rep :: k -> *) (a :: k) where
- getRepresentative :: Is rep a => a -> rep a
- rerepresentative :: Is rep a => p a -> rep a
- mkAny :: Is rep a => a -> Any rep
- mkAnyF :: Is rep a => f a -> AnyF rep f
Documentation
isWitnessRepresentative :: Dict (Is rep a) -> rep a #
class Eq1 rep => Representative (rep :: k -> *) where #
Minimal complete definition
Methods
getRepWitness :: forall (a :: k). rep a -> Dict (Is rep a) #
Every value is an instance of Is.
Instances
| Representative Nat NatType # | |
| Representative * w => Representative * (ListType w) # | |
| Representative k (Proxy k) # | |
withRepresentative :: forall (rep :: k -> *) r. Representative rep => (forall (a :: k). Is rep a => rep a -> r) -> forall (b :: k). rep b -> r #
class Representative rep => Is (rep :: k -> *) (a :: k) where #
If two representatives have the same type, then they have the same value.
Minimal complete definition
getRepresentative :: Is rep a => a -> rep a #
rerepresentative :: Is rep a => p a -> rep a #