module Plutarch.Internal.Quantification (PForall (PForall), PSome (PSome), PFix (PFix)) where import Data.Kind (Type) import Plutarch.Internal.Term (S, Term) type PForall :: (a -> (S -> Type)) -> (S -> Type) newtype PForall (b :: a -> (S -> Type)) s = PForall (forall (x :: a). Term s (b x)) type PSome :: (a -> (S -> Type)) -> (S -> Type) data PSome (b :: a -> (S -> Type)) s = forall (x :: a). PSome (Term s (b x)) type PFix :: ((S -> Type) -> (S -> Type)) -> (S -> Type) newtype PFix f s = PFix (Term s (f (PFix f)))