reflection-extras-0.1.0.0: Utilities for the reflection package

Safe HaskellNone

Data.Reflection.Extras

Synopsis

Documentation

using :: forall p a. ReifiableConstraint p => Def p a -> (p a => a) -> aSource

Choose a dictionary for a local type class instance.

>>> using (Monoid (+) 0) $ mempty <> 10 <> 12
> 12

usingT :: forall p f a. ReifiableConstraint p => Def p a -> (p a => f a) -> f aSource

reifyInstance :: Def p a -> (forall s. Reifies s (Def p a) => Proxy s -> r) -> rSource

with :: forall p a. Def p a -> (forall s. Reifies s (Def p a) => Lift p s a) -> aSource

data Lift p s a Source

Instances

Functor (Lift p s) 
Applicative (Lift p s) 
Reifies * s (Def Bounded a) => Bounded (Lift Bounded s a) 
Reifies * s (Def Enum a) => Enum (Lift Enum s a) 
Reifies * s (Def Eq a) => Eq (Lift Eq s a) 
Reifies * s (Def Ord a) => Eq (Lift Ord s a) 
Reifies * s (Def Real a) => Eq (Lift Real s a) 
Reifies * s (Def Num a) => Num (Lift Num s a) 
Reifies * s (Def Real a) => Num (Lift Real s a) 
Reifies * s (Def Ord a) => Ord (Lift Ord s a) 
Reifies * s (Def Real a) => Ord (Lift Real s a) 
Reifies * s (Def Read a) => Read (Lift Read s a) 
Reifies * s (Def Real a) => Real (Lift Real s a) 
Reifies * s (Def Show a) => Show (Lift Show s a) 
Reifies * s (Def ToJSON a) => ToJSON (Lift ToJSON s a) 
Reifies * s (Def FromJSON a) => FromJSON (Lift FromJSON s a) 
Reifies * s (Def Monoid a) => Monoid (Lift Monoid s a)