module Plutarch.Builtin.Opaque ( POpaque (POpaque), popaque, ) where import Plutarch.Internal.Term (Term, punsafeCoerce) -- | An Arbitrary Term with an unknown type newtype POpaque s = POpaque (Term s POpaque) -- | Erase the type of a Term popaque :: Term s a -> Term s POpaque popaque :: forall (s :: S) (a :: S -> Type). Term s a -> Term s POpaque popaque = Term s a -> Term s POpaque forall (b :: S -> Type) (a :: S -> Type) (s :: S). Term s a -> Term s b punsafeCoerce