{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE QuantifiedConstraints #-}
{-# LANGUAGE StandaloneKindSignatures #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE UndecidableSuperClasses #-}
module PlutusTx.Lift.TestInstances () where
import PlutusCore qualified as PLC
import PlutusCore.Builtin qualified as PLC
import PlutusTx.Builtins.HasBuiltin
import PlutusTx.Lift.Class
import Data.Kind qualified as GHC
type BuiltinSatisfies
:: (GHC.Type -> GHC.Constraint)
-> (GHC.Type -> GHC.Constraint)
-> GHC.Type
-> GHC.Constraint
class ((pre (ToBuiltin a)) => post (ToBuiltin a)) => BuiltinSatisfies pre post a
instance ((pre (ToBuiltin a)) => post (ToBuiltin a)) => BuiltinSatisfies pre post a
type TestAllBuiltinsSatisfy
:: (GHC.Type -> GHC.Constraint)
-> (GHC.Type -> GHC.Constraint)
-> GHC.Constraint
class (PLC.DefaultUni `PLC.Everywhere` BuiltinSatisfies pre post) => TestAllBuiltinsSatisfy pre post
instance
TestAllBuiltinsSatisfy
(PLC.AllBuiltinArgs PLC.DefaultUni (Typeable PLC.DefaultUni))
(Typeable PLC.DefaultUni)
instance
TestAllBuiltinsSatisfy
(PLC.AllBuiltinArgs PLC.DefaultUni HasFromBuiltin)
(Lift PLC.DefaultUni)