module Michelson.Let ( LetType (..) , LetValue (..) ) where import Data.Aeson.TH (defaultOptions, deriveJSON) import qualified Data.Text as T import Michelson.Macro (ParsedOp) import Michelson.Untyped (Type, Value') -- | A programmer-defined constant data LetValue = LetValue { lvName :: T.Text , lvSig :: Type , lvVal :: (Value' ParsedOp) } deriving (Eq, Show) -- | A programmer-defined type-synonym data LetType = LetType { ltName :: T.Text , ltSig :: Type } deriving (Eq, Show) deriveJSON defaultOptions ''LetValue deriveJSON defaultOptions ''LetType