{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DefaultSignatures #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
module Database.PostgreSQL.Tx.HEnv
( HEnv(Nil, Cons)
, singleton
, fromTuple
) where
import Database.PostgreSQL.Tx (TxEnv(lookupTxEnv))
data family HEnv (l :: [*])
data instance HEnv '[] = Nil
data instance HEnv (x ': xs) = x `Cons` HEnv xs
infixr 2 `Cons`
singleton :: a -> HEnv '[a]
singleton :: a -> HEnv '[a]
singleton = (a -> HEnv '[] -> HEnv '[a]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` HEnv '[]
Nil)
instance (Select a xs) => TxEnv a (HEnv xs) where
lookupTxEnv :: HEnv xs -> a
lookupTxEnv = HEnv xs -> a
forall a (xs :: [*]). Select a xs => HEnv xs -> a
select
class Select a xs where
select :: HEnv xs -> a
instance Select a (a ': xs) where
select :: HEnv (a : xs) -> a
select (a `Cons` _) = a
a
instance {-# OVERLAPPABLE #-} (Select a xs) => Select a (x ': xs) where
select :: HEnv (x : xs) -> a
select (_ `Cons` xs) = HEnv xs -> a
forall a (xs :: [*]). Select a xs => HEnv xs -> a
select HEnv xs
xs
class FromTuple i o | i -> o where
fromTuple :: i -> HEnv o
instance FromTuple (x1, x2) '[x1, x2] where fromTuple :: (x1, x2) -> HEnv '[x1, x2]
fromTuple (x1
x1, x2
x2) = x1
x1 x1 -> HEnv '[x2] -> HEnv '[x1, x2]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x2
x2 x2 -> HEnv '[] -> HEnv '[x2]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` HEnv '[]
Nil
instance FromTuple (x1, x2, x3) '[x1, x2, x3] where fromTuple :: (x1, x2, x3) -> HEnv '[x1, x2, x3]
fromTuple (x1
x1, x2
x2, x3
x3) = x1
x1 x1 -> HEnv '[x2, x3] -> HEnv '[x1, x2, x3]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x2
x2 x2 -> HEnv '[x3] -> HEnv '[x2, x3]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x3
x3 x3 -> HEnv '[] -> HEnv '[x3]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` HEnv '[]
Nil
instance FromTuple (x1, x2, x3, x4) '[x1, x2, x3, x4] where fromTuple :: (x1, x2, x3, x4) -> HEnv '[x1, x2, x3, x4]
fromTuple (x1
x1, x2
x2, x3
x3, x4
x4) = x1
x1 x1 -> HEnv '[x2, x3, x4] -> HEnv '[x1, x2, x3, x4]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x2
x2 x2 -> HEnv '[x3, x4] -> HEnv '[x2, x3, x4]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x3
x3 x3 -> HEnv '[x4] -> HEnv '[x3, x4]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x4
x4 x4 -> HEnv '[] -> HEnv '[x4]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` HEnv '[]
Nil
instance FromTuple (x1, x2, x3, x4, x5) '[x1, x2, x3, x4, x5] where fromTuple :: (x1, x2, x3, x4, x5) -> HEnv '[x1, x2, x3, x4, x5]
fromTuple (x1
x1, x2
x2, x3
x3, x4
x4, x5
x5) = x1
x1 x1 -> HEnv '[x2, x3, x4, x5] -> HEnv '[x1, x2, x3, x4, x5]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x2
x2 x2 -> HEnv '[x3, x4, x5] -> HEnv '[x2, x3, x4, x5]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x3
x3 x3 -> HEnv '[x4, x5] -> HEnv '[x3, x4, x5]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x4
x4 x4 -> HEnv '[x5] -> HEnv '[x4, x5]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x5
x5 x5 -> HEnv '[] -> HEnv '[x5]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` HEnv '[]
Nil
instance FromTuple (x1, x2, x3, x4, x5, x6) '[x1, x2, x3, x4, x5, x6] where fromTuple :: (x1, x2, x3, x4, x5, x6) -> HEnv '[x1, x2, x3, x4, x5, x6]
fromTuple (x1
x1, x2
x2, x3
x3, x4
x4, x5
x5, x6
x6) = x1
x1 x1 -> HEnv '[x2, x3, x4, x5, x6] -> HEnv '[x1, x2, x3, x4, x5, x6]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x2
x2 x2 -> HEnv '[x3, x4, x5, x6] -> HEnv '[x2, x3, x4, x5, x6]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x3
x3 x3 -> HEnv '[x4, x5, x6] -> HEnv '[x3, x4, x5, x6]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x4
x4 x4 -> HEnv '[x5, x6] -> HEnv '[x4, x5, x6]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x5
x5 x5 -> HEnv '[x6] -> HEnv '[x5, x6]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x6
x6 x6 -> HEnv '[] -> HEnv '[x6]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` HEnv '[]
Nil
instance FromTuple (x1, x2, x3, x4, x5, x6, x7) '[x1, x2, x3, x4, x5, x6, x7] where fromTuple :: (x1, x2, x3, x4, x5, x6, x7) -> HEnv '[x1, x2, x3, x4, x5, x6, x7]
fromTuple (x1
x1, x2
x2, x3
x3, x4
x4, x5
x5, x6
x6, x7
x7) = x1
x1 x1
-> HEnv '[x2, x3, x4, x5, x6, x7]
-> HEnv '[x1, x2, x3, x4, x5, x6, x7]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x2
x2 x2 -> HEnv '[x3, x4, x5, x6, x7] -> HEnv '[x2, x3, x4, x5, x6, x7]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x3
x3 x3 -> HEnv '[x4, x5, x6, x7] -> HEnv '[x3, x4, x5, x6, x7]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x4
x4 x4 -> HEnv '[x5, x6, x7] -> HEnv '[x4, x5, x6, x7]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x5
x5 x5 -> HEnv '[x6, x7] -> HEnv '[x5, x6, x7]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x6
x6 x6 -> HEnv '[x7] -> HEnv '[x6, x7]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x7
x7 x7 -> HEnv '[] -> HEnv '[x7]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` HEnv '[]
Nil
instance FromTuple (x1, x2, x3, x4, x5, x6, x7, x8) '[x1, x2, x3, x4, x5, x6, x7, x8] where fromTuple :: (x1, x2, x3, x4, x5, x6, x7, x8)
-> HEnv '[x1, x2, x3, x4, x5, x6, x7, x8]
fromTuple (x1
x1, x2
x2, x3
x3, x4
x4, x5
x5, x6
x6, x7
x7, x8
x8) = x1
x1 x1
-> HEnv '[x2, x3, x4, x5, x6, x7, x8]
-> HEnv '[x1, x2, x3, x4, x5, x6, x7, x8]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x2
x2 x2
-> HEnv '[x3, x4, x5, x6, x7, x8]
-> HEnv '[x2, x3, x4, x5, x6, x7, x8]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x3
x3 x3 -> HEnv '[x4, x5, x6, x7, x8] -> HEnv '[x3, x4, x5, x6, x7, x8]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x4
x4 x4 -> HEnv '[x5, x6, x7, x8] -> HEnv '[x4, x5, x6, x7, x8]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x5
x5 x5 -> HEnv '[x6, x7, x8] -> HEnv '[x5, x6, x7, x8]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x6
x6 x6 -> HEnv '[x7, x8] -> HEnv '[x6, x7, x8]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x7
x7 x7 -> HEnv '[x8] -> HEnv '[x7, x8]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x8
x8 x8 -> HEnv '[] -> HEnv '[x8]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` HEnv '[]
Nil
instance FromTuple (x1, x2, x3, x4, x5, x6, x7, x8, x9) '[x1, x2, x3, x4, x5, x6, x7, x8, x9] where fromTuple :: (x1, x2, x3, x4, x5, x6, x7, x8, x9)
-> HEnv '[x1, x2, x3, x4, x5, x6, x7, x8, x9]
fromTuple (x1
x1, x2
x2, x3
x3, x4
x4, x5
x5, x6
x6, x7
x7, x8
x8, x9
x9) = x1
x1 x1
-> HEnv '[x2, x3, x4, x5, x6, x7, x8, x9]
-> HEnv '[x1, x2, x3, x4, x5, x6, x7, x8, x9]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x2
x2 x2
-> HEnv '[x3, x4, x5, x6, x7, x8, x9]
-> HEnv '[x2, x3, x4, x5, x6, x7, x8, x9]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x3
x3 x3
-> HEnv '[x4, x5, x6, x7, x8, x9]
-> HEnv '[x3, x4, x5, x6, x7, x8, x9]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x4
x4 x4 -> HEnv '[x5, x6, x7, x8, x9] -> HEnv '[x4, x5, x6, x7, x8, x9]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x5
x5 x5 -> HEnv '[x6, x7, x8, x9] -> HEnv '[x5, x6, x7, x8, x9]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x6
x6 x6 -> HEnv '[x7, x8, x9] -> HEnv '[x6, x7, x8, x9]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x7
x7 x7 -> HEnv '[x8, x9] -> HEnv '[x7, x8, x9]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x8
x8 x8 -> HEnv '[x9] -> HEnv '[x8, x9]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x9
x9 x9 -> HEnv '[] -> HEnv '[x9]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` HEnv '[]
Nil
instance FromTuple (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) '[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10] where fromTuple :: (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)
-> HEnv '[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10]
fromTuple (x1
x1, x2
x2, x3
x3, x4
x4, x5
x5, x6
x6, x7
x7, x8
x8, x9
x9, x10
x10) = x1
x1 x1
-> HEnv '[x2, x3, x4, x5, x6, x7, x8, x9, x10]
-> HEnv '[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x2
x2 x2
-> HEnv '[x3, x4, x5, x6, x7, x8, x9, x10]
-> HEnv '[x2, x3, x4, x5, x6, x7, x8, x9, x10]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x3
x3 x3
-> HEnv '[x4, x5, x6, x7, x8, x9, x10]
-> HEnv '[x3, x4, x5, x6, x7, x8, x9, x10]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x4
x4 x4
-> HEnv '[x5, x6, x7, x8, x9, x10]
-> HEnv '[x4, x5, x6, x7, x8, x9, x10]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x5
x5 x5
-> HEnv '[x6, x7, x8, x9, x10] -> HEnv '[x5, x6, x7, x8, x9, x10]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x6
x6 x6 -> HEnv '[x7, x8, x9, x10] -> HEnv '[x6, x7, x8, x9, x10]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x7
x7 x7 -> HEnv '[x8, x9, x10] -> HEnv '[x7, x8, x9, x10]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x8
x8 x8 -> HEnv '[x9, x10] -> HEnv '[x8, x9, x10]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x9
x9 x9 -> HEnv '[x10] -> HEnv '[x9, x10]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x10
x10 x10 -> HEnv '[] -> HEnv '[x10]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` HEnv '[]
Nil
instance FromTuple (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) '[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11] where fromTuple :: (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)
-> HEnv '[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11]
fromTuple (x1
x1, x2
x2, x3
x3, x4
x4, x5
x5, x6
x6, x7
x7, x8
x8, x9
x9, x10
x10, x11
x11) = x1
x1 x1
-> HEnv '[x2, x3, x4, x5, x6, x7, x8, x9, x10, x11]
-> HEnv '[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x2
x2 x2
-> HEnv '[x3, x4, x5, x6, x7, x8, x9, x10, x11]
-> HEnv '[x2, x3, x4, x5, x6, x7, x8, x9, x10, x11]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x3
x3 x3
-> HEnv '[x4, x5, x6, x7, x8, x9, x10, x11]
-> HEnv '[x3, x4, x5, x6, x7, x8, x9, x10, x11]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x4
x4 x4
-> HEnv '[x5, x6, x7, x8, x9, x10, x11]
-> HEnv '[x4, x5, x6, x7, x8, x9, x10, x11]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x5
x5 x5
-> HEnv '[x6, x7, x8, x9, x10, x11]
-> HEnv '[x5, x6, x7, x8, x9, x10, x11]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x6
x6 x6
-> HEnv '[x7, x8, x9, x10, x11] -> HEnv '[x6, x7, x8, x9, x10, x11]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x7
x7 x7 -> HEnv '[x8, x9, x10, x11] -> HEnv '[x7, x8, x9, x10, x11]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x8
x8 x8 -> HEnv '[x9, x10, x11] -> HEnv '[x8, x9, x10, x11]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x9
x9 x9 -> HEnv '[x10, x11] -> HEnv '[x9, x10, x11]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x10
x10 x10 -> HEnv '[x11] -> HEnv '[x10, x11]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x11
x11 x11 -> HEnv '[] -> HEnv '[x11]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` HEnv '[]
Nil
instance FromTuple (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) '[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12] where fromTuple :: (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)
-> HEnv '[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12]
fromTuple (x1
x1, x2
x2, x3
x3, x4
x4, x5
x5, x6
x6, x7
x7, x8
x8, x9
x9, x10
x10, x11
x11, x12
x12) = x1
x1 x1
-> HEnv '[x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12]
-> HEnv '[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x2
x2 x2
-> HEnv '[x3, x4, x5, x6, x7, x8, x9, x10, x11, x12]
-> HEnv '[x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x3
x3 x3
-> HEnv '[x4, x5, x6, x7, x8, x9, x10, x11, x12]
-> HEnv '[x3, x4, x5, x6, x7, x8, x9, x10, x11, x12]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x4
x4 x4
-> HEnv '[x5, x6, x7, x8, x9, x10, x11, x12]
-> HEnv '[x4, x5, x6, x7, x8, x9, x10, x11, x12]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x5
x5 x5
-> HEnv '[x6, x7, x8, x9, x10, x11, x12]
-> HEnv '[x5, x6, x7, x8, x9, x10, x11, x12]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x6
x6 x6
-> HEnv '[x7, x8, x9, x10, x11, x12]
-> HEnv '[x6, x7, x8, x9, x10, x11, x12]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x7
x7 x7
-> HEnv '[x8, x9, x10, x11, x12]
-> HEnv '[x7, x8, x9, x10, x11, x12]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x8
x8 x8 -> HEnv '[x9, x10, x11, x12] -> HEnv '[x8, x9, x10, x11, x12]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x9
x9 x9 -> HEnv '[x10, x11, x12] -> HEnv '[x9, x10, x11, x12]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x10
x10 x10 -> HEnv '[x11, x12] -> HEnv '[x10, x11, x12]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x11
x11 x11 -> HEnv '[x12] -> HEnv '[x11, x12]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x12
x12 x12 -> HEnv '[] -> HEnv '[x12]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` HEnv '[]
Nil
instance FromTuple (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13) '[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13] where fromTuple :: (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)
-> HEnv '[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13]
fromTuple (x1
x1, x2
x2, x3
x3, x4
x4, x5
x5, x6
x6, x7
x7, x8
x8, x9
x9, x10
x10, x11
x11, x12
x12, x13
x13) = x1
x1 x1
-> HEnv '[x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13]
-> HEnv '[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x2
x2 x2
-> HEnv '[x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13]
-> HEnv '[x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x3
x3 x3
-> HEnv '[x4, x5, x6, x7, x8, x9, x10, x11, x12, x13]
-> HEnv '[x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x4
x4 x4
-> HEnv '[x5, x6, x7, x8, x9, x10, x11, x12, x13]
-> HEnv '[x4, x5, x6, x7, x8, x9, x10, x11, x12, x13]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x5
x5 x5
-> HEnv '[x6, x7, x8, x9, x10, x11, x12, x13]
-> HEnv '[x5, x6, x7, x8, x9, x10, x11, x12, x13]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x6
x6 x6
-> HEnv '[x7, x8, x9, x10, x11, x12, x13]
-> HEnv '[x6, x7, x8, x9, x10, x11, x12, x13]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x7
x7 x7
-> HEnv '[x8, x9, x10, x11, x12, x13]
-> HEnv '[x7, x8, x9, x10, x11, x12, x13]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x8
x8 x8
-> HEnv '[x9, x10, x11, x12, x13]
-> HEnv '[x8, x9, x10, x11, x12, x13]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x9
x9 x9 -> HEnv '[x10, x11, x12, x13] -> HEnv '[x9, x10, x11, x12, x13]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x10
x10 x10 -> HEnv '[x11, x12, x13] -> HEnv '[x10, x11, x12, x13]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x11
x11 x11 -> HEnv '[x12, x13] -> HEnv '[x11, x12, x13]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x12
x12 x12 -> HEnv '[x13] -> HEnv '[x12, x13]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x13
x13 x13 -> HEnv '[] -> HEnv '[x13]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` HEnv '[]
Nil
instance FromTuple (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14) '[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14] where fromTuple :: (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14)
-> HEnv
'[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14]
fromTuple (x1
x1, x2
x2, x3
x3, x4
x4, x5
x5, x6
x6, x7
x7, x8
x8, x9
x9, x10
x10, x11
x11, x12
x12, x13
x13, x14
x14) = x1
x1 x1
-> HEnv '[x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14]
-> HEnv
'[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x2
x2 x2
-> HEnv '[x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14]
-> HEnv '[x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x3
x3 x3
-> HEnv '[x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14]
-> HEnv '[x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x4
x4 x4
-> HEnv '[x5, x6, x7, x8, x9, x10, x11, x12, x13, x14]
-> HEnv '[x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x5
x5 x5
-> HEnv '[x6, x7, x8, x9, x10, x11, x12, x13, x14]
-> HEnv '[x5, x6, x7, x8, x9, x10, x11, x12, x13, x14]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x6
x6 x6
-> HEnv '[x7, x8, x9, x10, x11, x12, x13, x14]
-> HEnv '[x6, x7, x8, x9, x10, x11, x12, x13, x14]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x7
x7 x7
-> HEnv '[x8, x9, x10, x11, x12, x13, x14]
-> HEnv '[x7, x8, x9, x10, x11, x12, x13, x14]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x8
x8 x8
-> HEnv '[x9, x10, x11, x12, x13, x14]
-> HEnv '[x8, x9, x10, x11, x12, x13, x14]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x9
x9 x9
-> HEnv '[x10, x11, x12, x13, x14]
-> HEnv '[x9, x10, x11, x12, x13, x14]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x10
x10 x10
-> HEnv '[x11, x12, x13, x14] -> HEnv '[x10, x11, x12, x13, x14]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x11
x11 x11 -> HEnv '[x12, x13, x14] -> HEnv '[x11, x12, x13, x14]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x12
x12 x12 -> HEnv '[x13, x14] -> HEnv '[x12, x13, x14]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x13
x13 x13 -> HEnv '[x14] -> HEnv '[x13, x14]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x14
x14 x14 -> HEnv '[] -> HEnv '[x14]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` HEnv '[]
Nil
instance FromTuple (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15) '[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15] where fromTuple :: (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)
-> HEnv
'[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15]
fromTuple (x1
x1, x2
x2, x3
x3, x4
x4, x5
x5, x6
x6, x7
x7, x8
x8, x9
x9, x10
x10, x11
x11, x12
x12, x13
x13, x14
x14, x15
x15) = x1
x1 x1
-> HEnv
'[x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15]
-> HEnv
'[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x2
x2 x2
-> HEnv '[x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15]
-> HEnv
'[x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x3
x3 x3
-> HEnv '[x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15]
-> HEnv '[x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x4
x4 x4
-> HEnv '[x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15]
-> HEnv '[x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x5
x5 x5
-> HEnv '[x6, x7, x8, x9, x10, x11, x12, x13, x14, x15]
-> HEnv '[x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x6
x6 x6
-> HEnv '[x7, x8, x9, x10, x11, x12, x13, x14, x15]
-> HEnv '[x6, x7, x8, x9, x10, x11, x12, x13, x14, x15]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x7
x7 x7
-> HEnv '[x8, x9, x10, x11, x12, x13, x14, x15]
-> HEnv '[x7, x8, x9, x10, x11, x12, x13, x14, x15]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x8
x8 x8
-> HEnv '[x9, x10, x11, x12, x13, x14, x15]
-> HEnv '[x8, x9, x10, x11, x12, x13, x14, x15]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x9
x9 x9
-> HEnv '[x10, x11, x12, x13, x14, x15]
-> HEnv '[x9, x10, x11, x12, x13, x14, x15]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x10
x10 x10
-> HEnv '[x11, x12, x13, x14, x15]
-> HEnv '[x10, x11, x12, x13, x14, x15]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x11
x11 x11
-> HEnv '[x12, x13, x14, x15] -> HEnv '[x11, x12, x13, x14, x15]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x12
x12 x12 -> HEnv '[x13, x14, x15] -> HEnv '[x12, x13, x14, x15]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x13
x13 x13 -> HEnv '[x14, x15] -> HEnv '[x13, x14, x15]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x14
x14 x14 -> HEnv '[x15] -> HEnv '[x14, x15]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x15
x15 x15 -> HEnv '[] -> HEnv '[x15]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` HEnv '[]
Nil
instance FromTuple (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16) '[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16] where fromTuple :: (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15,
x16)
-> HEnv
'[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15,
x16]
fromTuple (x1
x1, x2
x2, x3
x3, x4
x4, x5
x5, x6
x6, x7
x7, x8
x8, x9
x9, x10
x10, x11
x11, x12
x12, x13
x13, x14
x14, x15
x15, x16
x16) = x1
x1 x1
-> HEnv
'[x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15,
x16]
-> HEnv
'[x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15,
x16]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x2
x2 x2
-> HEnv
'[x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16]
-> HEnv
'[x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15,
x16]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x3
x3 x3
-> HEnv
'[x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16]
-> HEnv
'[x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x4
x4 x4
-> HEnv '[x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16]
-> HEnv
'[x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x5
x5 x5
-> HEnv '[x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16]
-> HEnv '[x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x6
x6 x6
-> HEnv '[x7, x8, x9, x10, x11, x12, x13, x14, x15, x16]
-> HEnv '[x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x7
x7 x7
-> HEnv '[x8, x9, x10, x11, x12, x13, x14, x15, x16]
-> HEnv '[x7, x8, x9, x10, x11, x12, x13, x14, x15, x16]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x8
x8 x8
-> HEnv '[x9, x10, x11, x12, x13, x14, x15, x16]
-> HEnv '[x8, x9, x10, x11, x12, x13, x14, x15, x16]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x9
x9 x9
-> HEnv '[x10, x11, x12, x13, x14, x15, x16]
-> HEnv '[x9, x10, x11, x12, x13, x14, x15, x16]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x10
x10 x10
-> HEnv '[x11, x12, x13, x14, x15, x16]
-> HEnv '[x10, x11, x12, x13, x14, x15, x16]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x11
x11 x11
-> HEnv '[x12, x13, x14, x15, x16]
-> HEnv '[x11, x12, x13, x14, x15, x16]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x12
x12 x12
-> HEnv '[x13, x14, x15, x16] -> HEnv '[x12, x13, x14, x15, x16]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x13
x13 x13 -> HEnv '[x14, x15, x16] -> HEnv '[x13, x14, x15, x16]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x14
x14 x14 -> HEnv '[x15, x16] -> HEnv '[x14, x15, x16]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x15
x15 x15 -> HEnv '[x16] -> HEnv '[x15, x16]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` x16
x16 x16 -> HEnv '[] -> HEnv '[x16]
forall x (xs :: [*]). x -> HEnv xs -> HEnv (x : xs)
`Cons` HEnv '[]
Nil