spectacle-1.0.0: src/Language/Spectacle/Syntax/Prime/Internal.hs
{-# LANGUAGE TypeFamilies #-}
module Language.Spectacle.Syntax.Prime.Internal
( Prime (Prime),
Effect (PrimeVar),
)
where
import Data.Void (Void)
import Data.Type.Rec (Has, Name)
import Language.Spectacle.Lang (Effect, EffectK, Lang)
-- -------------------------------------------------------------------------------------------------
newtype Prime :: EffectK where
Prime :: Void -> Prime a
data instance Effect Prime m a where
PrimeVar :: (Has s a ctx, m ~ Lang ctx eff) => Name s -> Effect Prime m a