module Ledger.Conway.Foreign.Enact where
open import Class.Convertible
open import Class.Convertible.Foreign
open import Class.HasHsType
open import Class.HasHsType.Foreign
open import Tactic.Derive.Convertible
open import Tactic.Derive.HsType
open import Ledger.Prelude
open import Ledger.Prelude.Foreign.HSTypes
open import Ledger.Core.Foreign.Address
open import Ledger.Conway.Foreign.HSStructures
open import Ledger.Conway.Foreign.PParams
open import Ledger.Conway.Foreign.Gov.Actions
open import Ledger.Conway.Specification.Enact govStructure
open import Ledger.Conway.Specification.Enact.Properties.Computational govStructure
open Computational
instance
HsTy-EnactState = autoHsType EnactState ⊣ withConstructor "MkEnactState"
• fieldPrefix "es"
Conv-EnactState = autoConvert EnactState
HsTy-EnactEnv = autoHsType EnactEnv ⊣ withConstructor "MkEnactEnv"
• fieldPrefix "ee"
Conv-EnactEnv = autoConvert EnactEnv
enact-step : HsType (EnactEnv → EnactState → GovAction → ComputationResult String EnactState)
enact-step = to (compute Computational-ENACT)
{-# COMPILE GHC enact-step as enactStep #-}