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)