auto-lift-classes-1.1: Deriving (Show|Read)(1|2)
Safe HaskellSafe-Inferred
LanguageHaskell2010

AutoLift.Machinery

Description

Internal workings of AutoLift. You usually don't need to import this module.

Synopsis

Documentation

newtype AdHoc s a Source #

Apply ad hoc instances on type a.

Constructors

AdHoc 

Fields

Instances

Instances details
Reifies s (ReadDict a) => Read (AdHoc s a) Source # 
Instance details

Defined in AutoLift.Machinery

Reifies s (ShowDict a) => Show (AdHoc s a) Source # 
Instance details

Defined in AutoLift.Machinery

Methods

showsPrec :: Int -> AdHoc s a -> ShowS #

show :: AdHoc s a -> String #

showList :: [AdHoc s a] -> ShowS #

data ShowDict a Source #

Injected dictionary of Show

Constructors

ShowDict 

Fields

showDict :: forall a. Show a => ShowDict a Source #

autoShow1 :: forall f b. (forall a. Show a => Show (f a)) => (forall x y. Coercible x y => Coercible (f x) (f y)) => ShowDict b -> ShowDict (f b) Source #

Automatic Show1

autoShow2 :: forall f c d. (forall a b. (Show a, Show b) => Show (f a b)) => (forall x1 x2 y1 y2. (Coercible x1 y1, Coercible x2 y2) => Coercible (f x1 x2) (f y1 y2)) => ShowDict c -> ShowDict d -> ShowDict (f c d) Source #

Automatic Show2

autoShow1Functor :: forall f b. (forall a. Show a => Show (f a)) => Functor f => ShowDict b -> ShowDict (f b) Source #

autoShow2Bifunctor :: forall f c d. (forall a b. (Show a, Show b) => Show (f a b)) => Bifunctor f => ShowDict c -> ShowDict d -> ShowDict (f c d) Source #

data ReadDict a Source #

Injected dictionary of Read

Constructors

ReadDict 

Instances

Instances details
Functor ReadDict Source # 
Instance details

Defined in AutoLift.Machinery

Methods

fmap :: (a -> b) -> ReadDict a -> ReadDict b #

(<$) :: a -> ReadDict b -> ReadDict a #

readDict :: forall a. Read a => ReadDict a Source #

autoRead1 :: forall f b. (forall a. Read a => Read (f a)) => (forall x y. Coercible x y => Coercible (f x) (f y)) => ReadDict b -> ReadDict (f b) Source #

Automatic Read1

autoRead2 :: forall f c d. (forall a b. (Read a, Read b) => Read (f a b)) => (forall x1 x2 y1 y2. (Coercible x1 y1, Coercible x2 y2) => Coercible (f x1 x2) (f y1 y2)) => ReadDict c -> ReadDict d -> ReadDict (f c d) Source #

autoRead1Functor :: forall f b. (forall a. Read a => Read (f a)) => Functor f => ReadDict b -> ReadDict (f b) Source #

autoRead2Bifunctor :: forall f c d. (forall a b. (Read a, Read b) => Read (f a b)) => Bifunctor f => ReadDict c -> ReadDict d -> ReadDict (f c d) Source #