spectacle-1.0.0: src/Language/Spectacle/Syntax/Env/Internal.hs
{-# LANGUAGE TypeFamilies #-}
module Language.Spectacle.Syntax.Env.Internal
( Env (Env),
Effect (Get, Put),
)
where
import Data.Void (Void)
import Language.Spectacle.Lang (Effect, EffectK)
import Language.Spectacle.RTS.Registers (RuntimeState)
-- ---------------------------------------------------------------------------------------------------------------------
newtype Env :: EffectK where
Env :: Void -> Env a
data instance Effect Env m a where
Get :: m ~ f ctx effs => Effect Env m (RuntimeState ctx)
Put :: m ~ f ctx effs => RuntimeState ctx -> Effect Env m ()