module Pandora.Paradigm.Schemes.T_ where

import Pandora.Paradigm.Primary.Functor.Product (type (:*:))
import Pandora.Paradigm.Controlflow.Effect.Interpreted (Interpreted (Primary, run, unite))

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
	unite :: Primary (T_ ct t) a -> T_ ct t a
unite = Primary (T_ ct t) a -> T_ ct t a
forall k (ct :: k) (t :: * -> *) a. (a :*: t a) -> T_ ct t a
T_