module Pandora.Paradigm.Junction.Transformer (Transformer (..)) where import Pandora.Pattern.Functor.Covariant (Covariant) import Pandora.Pattern.Functor.Pointable (Pointable) class Transformer t where {-# MINIMAL lay, equip #-} type Layout (t :: * -> *) (u :: * -> *) (a :: *) = r | r -> t u lay :: Covariant u => u a -> Layout t u a equip :: Pointable u => t a -> Layout t u a