packages feed

hydra-0.12.0: src/gen-main/haskell/Hydra/Phantoms.hs

-- | Phantom types for use with Hydra DSLs

module Hydra.Phantoms where

import qualified Hydra.Core as Core
import Prelude hiding  (Enum, Ordering, fail, map, pure, sum)
import qualified Data.Int as I
import qualified Data.List as L
import qualified Data.Map as M
import qualified Data.Set as S

-- | An association of a named term (element) with a phantom type
data TBinding a = 
  TBinding {
    tBindingName :: Core.Name,
    tBindingTerm :: (TTerm a)}
  deriving (Eq, Ord, Read, Show)

_TBinding = (Core.Name "hydra.phantoms.TBinding")

_TBinding_name = (Core.Name "name")

_TBinding_term = (Core.Name "term")

-- | An association of a term with a phantom type
newtype TTerm a = 
  TTerm {
    unTTerm :: Core.Term}
  deriving (Eq, Ord, Read, Show)

_TTerm = (Core.Name "hydra.phantoms.TTerm")