module Pandora.Paradigm.Schemes.T_ where import Pandora.Paradigm.Primary.Functor.Product (type (:*:)) import Pandora.Paradigm.Controlflow.Effect.Interpreted (Interpreted (Primary, run)) newtype T_ ct t a = T_ (a :*: t a) instance Interpreted (T_ ct t) where type Primary (T_ ct t) a = a :*: t a run :: T_ ct t a -> Primary (T_ ct t) a run ~(T_ a :*: t a x) = a :*: t a Primary (T_ ct t) a x