module Data.MGeneric.Instances where
import Data.MGeneric
import Data.MGeneric.TH
import Data.Proxy
import Data.HList
import Data.Nat
import Data.Unapply
import Data.HList.TH
import Data.MFunctor
import Data.MFoldable
import Data.MTraversable
import Data.MZip
import Data.Monoid
import Control.Applicative
import Control.Monad.Identity
deriveMGeneric ''[]
deriveMGeneric ''Maybe
deriveMGeneric ''Either
deriveMGeneric ''Bool
deriveMGeneric ''Ordering
deriveMGeneric ''()
deriveMGeneric ''(,)
deriveMGeneric ''(,,)
deriveMGeneric ''(,,,)
deriveMGeneric ''(,,,,)
deriveMGeneric ''(,,,,,)
deriveMGeneric ''(,,,,,,)
deriveMGeneric ''(,,,,,,,)
deriveMGeneric ''(,,,,,,,,)
deriveMGeneric ''Last
deriveMGeneric ''First
deriveMGeneric ''Product
deriveMGeneric ''Sum
deriveMGeneric ''Endo
deriveMGeneric ''Const
deriveMGeneric ''Identity
instance MFunctor [] '[a -> a'] '[ 'CoV]
instance MFunctor Maybe '[a -> a'] '[ 'CoV]
instance MFunctor Either '[a -> a', b -> b'] '[ 'CoV, 'CoV]
instance MFunctor Bool '[] '[]
instance MFunctor Ordering '[] '[]
instance MFunctor () '[] '[]
instance MFunctor (,) '[a -> a', b -> b'] '[ 'CoV, 'CoV]
instance MFunctor (,,) '[a -> a', b -> b', c -> c'] '[ 'CoV, 'CoV, 'CoV]
instance MFunctor (,,,) '[a -> a', b -> b', c -> c', d -> d'] '[ 'CoV, 'CoV, 'CoV, 'CoV]
instance MFunctor (,,,,) '[a -> a', b -> b', c -> c', d -> d', e -> e'] '[ 'CoV, 'CoV, 'CoV, 'CoV, 'CoV]
instance MFunctor (,,,,,) '[a -> a', b -> b', c -> c', d -> d', e -> e', f -> f'] '[ 'CoV, 'CoV, 'CoV, 'CoV, 'CoV, 'CoV]
instance MFunctor (,,,,,,) '[a -> a', b -> b', c -> c', d -> d', e -> e', f -> f', g -> g'] '[ 'CoV, 'CoV, 'CoV, 'CoV, 'CoV, 'CoV, 'CoV]
instance MFunctor (,,,,,,,) '[a -> a', b -> b', c -> c', d -> d', e -> e', f -> f', g -> g', h -> h'] '[ 'CoV, 'CoV, 'CoV, 'CoV, 'CoV, 'CoV, 'CoV, 'CoV]
instance MFunctor (,,,,,,,,) '[a -> a', b -> b', c -> c', d -> d', e -> e', f -> f', g -> g', h -> h', i -> i'] '[ 'CoV, 'CoV, 'CoV, 'CoV, 'CoV, 'CoV, 'CoV, 'CoV, 'CoV]
instance MFunctor Last '[a -> b] '[ 'CoV]
instance MFunctor First '[a -> b] '[ 'CoV]
instance MFunctor Product '[a -> b] '[ 'CoV]
instance MFunctor Sum '[a -> b] '[ 'CoV]
instance MFunctor (->) '[a' -> a, b -> b'] '[ 'ContraV, 'CoV] where
mmapP _ _ (HCons f (HCons g HNil)) x = g . x . f
instance MFoldable [] '[a]
instance MFoldable Maybe '[a]
instance MFoldable Either '[a, b]
instance MFoldable Bool '[]
instance MFoldable Ordering '[]
instance MFoldable () '[]
instance MFoldable (,) '[a, b]
instance MFoldable (,,) '[a, b, c]
instance MFoldable (,,,) '[a, b, c, d]
instance MFoldable (,,,,) '[a, b, c, d, e]
instance MFoldable (,,,,,) '[a, b, c, d, e, f]
instance MFoldable (,,,,,,) '[a, b, c, d, e, f, g]
instance MFoldable (,,,,,,,) '[a, b, c, d, e, f, g, h]
instance MFoldable (,,,,,,,,) '[a, b, c, d, e, f, g, h, i]
instance MFoldable Last '[a]
instance MFoldable First '[a]
instance MFoldable Product '[a]
instance MFoldable Sum '[a]
instance MFoldable Identity '[a]
instance MTraversable [] '[a -> a'] t
instance MTraversable Maybe '[a -> a'] t
instance MTraversable Either '[a -> a', b -> b'] t
instance MTraversable Bool '[] t
instance MTraversable Ordering '[] t
instance MTraversable () '[] t
instance MTraversable (,) '[a -> a', b -> b'] t
instance MTraversable (,,) '[a -> a', b -> b', c -> c'] t
instance MTraversable (,,,) '[a -> a', b -> b', c -> c', d -> d'] t
instance MTraversable (,,,,) '[a -> a', b -> b', c -> c', d -> d', e -> e'] t
instance MTraversable (,,,,,) '[a -> a', b -> b', c -> c', d -> d', e -> e', f -> f'] t
instance MTraversable (,,,,,,) '[a -> a', b -> b', c -> c', d -> d', e -> e', f -> f', g -> g'] t
instance MTraversable (,,,,,,,) '[a -> a', b -> b', c -> c', d -> d', e -> e', f -> f', g -> g', h -> h'] t
instance MTraversable (,,,,,,,,) '[a -> a', b -> b', c -> c', d -> d', e -> e', f -> f', g -> g', h -> h', i -> i'] t
instance MTraversable Last '[a -> b] t
instance MTraversable First '[a -> b] t
instance MTraversable Product '[a -> b] t
instance MTraversable Sum '[a -> b] t
instance ( MZipWithG n [] (Rep ([] :$: LCodoms n '[f])) '[f]
, GMZipWith n (Rep ([] :$: LCodoms n '[f])) '[f]
) => MZipWith n [] '[f]
instance ( MZipWithG n Maybe (Rep (Maybe :$: LCodoms n '[f])) '[f]
, GMZipWith n (Rep (Maybe :$: LCodoms n '[f])) '[f]
) => MZipWith n Maybe '[f]
instance ( MZipWithG n Either (Rep (Either :$: LCodoms n '[f, g])) '[f, g]
, GMZipWith n (Rep (Either :$: LCodoms n '[f, g])) '[f, g]
) => MZipWith n Either '[f, g]
instance ( MZipWithG n Bool (Rep (Bool :$: LCodoms n '[])) '[]
, GMZipWith n (Rep (Bool :$: LCodoms n '[])) '[]
) => MZipWith n Bool '[]
instance ( MZipWithG n Ordering (Rep (Ordering :$: LCodoms n '[])) '[]
, GMZipWith n (Rep (Ordering :$: LCodoms n '[])) '[]
) => MZipWith n Ordering '[]
instance ( MZipWithG n () (Rep (() :$: LCodoms n '[])) '[]
, GMZipWith n (Rep (() :$: LCodoms n '[])) '[]
) => MZipWith n () '[]
instance ( MZipWithG n (,) (Rep ((,) :$: LCodoms n '[f, g])) '[f, g]
, GMZipWith n (Rep ((,) :$: LCodoms n '[f, g])) '[f, g]
) => MZipWith n (,) '[f, g]
instance ( MZipWithG n (,,) (Rep ((,,) :$: LCodoms n '[f, g, h])) '[f, g, h]
, GMZipWith n (Rep ((,,) :$: LCodoms n '[f, g, h])) '[f, g, h]
) => MZipWith n (,,) '[f, g, h]
instance ( MZipWithG n (,,,) (Rep ((,,,) :$: LCodoms n '[f, g, h, i])) '[f, g, h, i]
, GMZipWith n (Rep ((,,,) :$: LCodoms n '[f, g, h, i])) '[f, g, h, i]
) => MZipWith n (,,,) '[f, g, h, i]
instance ( MZipWithG n (,,,,) (Rep ((,,,,) :$: LCodoms n '[f, g, h, i, j])) '[f, g, h, i, j]
, GMZipWith n (Rep ((,,,,) :$: LCodoms n '[f, g, h, i, j])) '[f, g, h, i, j]
) => MZipWith n (,,,,) '[f, g, h, i, j]
instance ( MZipWithG n (,,,,,) (Rep ((,,,,,) :$: LCodoms n '[f, g, h, i, j, k])) '[f, g, h, i, j, k]
, GMZipWith n (Rep ((,,,,,) :$: LCodoms n '[f, g, h, i, j, k])) '[f, g, h, i, j, k]
) => MZipWith n (,,,,,) '[f, g, h, i, j, k]
instance ( MZipWithG n (,,,,,,) (Rep ((,,,,,,) :$: LCodoms n '[f, g, h, i, j, k, l])) '[f, g, h, i, j, k, l]
, GMZipWith n (Rep ((,,,,,,) :$: LCodoms n '[f, g, h, i, j, k, l])) '[f, g, h, i, j, k, l]
) => MZipWith n (,,,,,,) '[f, g, h, i, j, k, l]
instance ( MZipWithG n (,,,,,,,) (Rep ((,,,,,,,) :$: LCodoms n '[f, g, h, i, j, k, l, m])) '[f, g, h, i, j, k, l, m]
, GMZipWith n (Rep ((,,,,,,,) :$: LCodoms n '[f, g, h, i, j, k, l, m])) '[f, g, h, i, j, k, l, m]
) => MZipWith n (,,,,,,,) '[f, g, h, i, j, k, l, m]
instance ( MZipWithG n (,,,,,,,,) (Rep ((,,,,,,,,) :$: LCodoms n '[f, g, h, i, j, k, l, m, o])) '[f, g, h, i, j, k, l, m, o]
, GMZipWith n (Rep ((,,,,,,,,) :$: LCodoms n '[f, g, h, i, j, k, l, m, o])) '[f, g, h, i, j, k, l, m, o]
) => MZipWith n (,,,,,,,,) '[f, g, h, i, j, k, l, m, o]
instance ( MZipWithG n Product (Rep (Product :$: LCodoms n '[f])) '[f]
, GMZipWith n (Rep (Product :$: LCodoms n '[f])) '[f]
) => MZipWith n Product '[f]
instance ( MZipWithG n Sum (Rep (Sum :$: LCodoms n '[f])) '[f]
, GMZipWith n (Rep (Sum :$: LCodoms n '[f])) '[f]
) => MZipWith n Sum '[f]
instance ( MZipWithG n Last (Rep (Last :$: LCodoms n '[f])) '[f]
, GMZipWith n (Rep (Last :$: LCodoms n '[f])) '[f]
) => MZipWith n Last '[f]
instance ( MZipWithG n First (Rep (First :$: LCodoms n '[f])) '[f]
, GMZipWith n (Rep (First :$: LCodoms n '[f])) '[f]
) => MZipWith n First '[f]