morley-0.3.0: src/Lorentz/Constraints.hs
module Lorentz.Constraints
( CanHaveBigMap
, KnownValue
, KnownCValue
, NoOperation
, NoBigMap
) where
import Data.Singletons (SingI)
import Michelson.Typed
-- | Gathers constraints, commonly required for values.
type KnownValue a = (Typeable (ToT a), SingI (ToT a))
type KnownCValue a = (IsoValue a, Typeable (ToCT a), SingI (ToCT a))
-- | Ensure given type does not contain "operation".
type NoOperation a = ForbidOp (ToT a)
type NoBigMap a = ForbidBigMap (ToT a)
type CanHaveBigMap a = AllowBigMap (ToT a)