constraint-reflection-0.1.0.0: Constraint reflection
Safe HaskellSafe
LanguageHaskell2010

Data.Reflection.Constraint

Documentation

newtype Reflected c s a Source #

Constructors

Reflected 

Fields

Instances

Instances details
Reifies s (Methods Ord a) => Eq (Reflected Ord s a) Source # 
Instance details

Defined in Data.Reflection.Constraint

Methods

(==) :: Reflected Ord s a -> Reflected Ord s a -> Bool #

(/=) :: Reflected Ord s a -> Reflected Ord s a -> Bool #

Reifies s (Methods Eq a) => Eq (Reflected Eq s a) Source # 
Instance details

Defined in Data.Reflection.Constraint

Methods

(==) :: Reflected Eq s a -> Reflected Eq s a -> Bool #

(/=) :: Reflected Eq s a -> Reflected Eq s a -> Bool #

Reifies s (Methods Ord a) => Ord (Reflected Ord s a) Source # 
Instance details

Defined in Data.Reflection.Constraint

Methods

compare :: Reflected Ord s a -> Reflected Ord s a -> Ordering #

(<) :: Reflected Ord s a -> Reflected Ord s a -> Bool #

(<=) :: Reflected Ord s a -> Reflected Ord s a -> Bool #

(>) :: Reflected Ord s a -> Reflected Ord s a -> Bool #

(>=) :: Reflected Ord s a -> Reflected Ord s a -> Bool #

max :: Reflected Ord s a -> Reflected Ord s a -> Reflected Ord s a #

min :: Reflected Ord s a -> Reflected Ord s a -> Reflected Ord s a #

Reifies s (Methods Monoid a) => Semigroup (Reflected Monoid s a) Source # 
Instance details

Defined in Data.Reflection.Constraint

Reifies s (Methods Semigroup a) => Semigroup (Reflected Semigroup s a) Source # 
Instance details

Defined in Data.Reflection.Constraint

Reifies s (Methods Monoid a) => Monoid (Reflected Monoid s a) Source # 
Instance details

Defined in Data.Reflection.Constraint

unReflected' :: proxy s -> Reflected c s a -> a Source #

class Functor (Iso (->)) (->) (Methods c) => Reifiable c where Source #

Minimal complete definition

Nothing

Associated Types

data Methods c a Source #

Methods

reifiable :: Reifies s (Methods c a) => Dict (c (Reflected c s a)) Source #

default reifiable :: c (Reflected c s a) => Dict (c (Reflected c s a)) Source #

Instances

Instances details
Reifiable Eq Source # 
Instance details

Defined in Data.Reflection.Constraint

Associated Types

data Methods Eq a Source #

Methods

reifiable :: forall k (s :: k) a. Reifies s (Methods Eq a) => Dict (Eq (Reflected Eq s a)) Source #

Reifiable Ord Source # 
Instance details

Defined in Data.Reflection.Constraint

Associated Types

data Methods Ord a Source #

Methods

reifiable :: forall k (s :: k) a. Reifies s (Methods Ord a) => Dict (Ord (Reflected Ord s a)) Source #

Reifiable Semigroup Source # 
Instance details

Defined in Data.Reflection.Constraint

Associated Types

data Methods Semigroup a Source #

Methods

reifiable :: forall k (s :: k) a. Reifies s (Methods Semigroup a) => Dict (Semigroup (Reflected Semigroup s a)) Source #

Reifiable Monoid Source # 
Instance details

Defined in Data.Reflection.Constraint

Associated Types

data Methods Monoid a Source #

Methods

reifiable :: forall k (s :: k) a. Reifies s (Methods Monoid a) => Dict (Monoid (Reflected Monoid s a)) Source #

reifiable' :: (Reifiable c, Reifies s (Methods c a)) => proxy s -> Dict (c (Reflected c s a)) Source #

by :: forall c f a. (Reifiable c, Functor (Iso (->)) (->) f) => Methods c a -> (forall a. c a => f a) -> f a Source #