packed-data-0.1.0.0: src/Data/Packed/Utils.hs
{-# LANGUAGE TypeFamilies #-}
module Data.Packed.Utils ((:++:)) where
-- | Type operator to concat lists of types
type family a :++: b where
'[] :++: xs = xs
(x ': xs) :++: r = x ': (xs :++: r)
-- class
-- (:++:) (xs :: [Type]) (ys :: [Type]) (zs :: [Type])
-- | zs ys -> xs
-- , zs xs -> ys
--
-- instance (ys ~ zs) => (:++:) '[] ys zs
--
-- instance ((:++:) xs ys zs) => (:++:) (x : xs) ys (x : zs)