Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module is pretty cool because it gives you a way to talk about heterogeneous representations for different columns!
might be replaced with an HList of Vectors approach
Documentation
data VHProd (prd :: HProd (* -> *)) val where Source #
VHLeaf :: !(v a) -> VHProd (HUnit v) a | |
VHNode :: !(VHProd pra a) -> !(VHProd prb b) -> VHProd (HPair pra prb) (a, b) |
Instances
data MVHProd (prd :: HProd (* -> * -> *)) (st :: *) val where Source #
MVHLeaf :: !(mv st a) -> MVHProd (HUnit mv) st a | |
MVHNode :: !(MVHProd pra st a) -> !(MVHProd prb st b) -> MVHProd (HPair pra prb) st (a, b) |
Instances
type family MutableHProdTree (a :: HProd (* -> *)) = r | r -> a where ... Source #
MutableHProdTree (HUnit v) = HUnit (Mutable v) | |
MutableHProdTree (HPair left right) = HPair (MutableHProdTree left) (MutableHProdTree right) |
type family TransformHProdTree (f :: k -> m) (a :: HProd k) :: HProd m where ... Source #
TransformHProdTree f (HUnit v) = HUnit (f v) | |
TransformHProdTree f (HPair left right) = HPair (TransformHProdTree f left) (TransformHProdTree f right) |