packages feed

hydra-0.8.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 Data.Int
import Data.List as L
import Data.Map as M
import Data.Set as S

-- | An association of a field name (as in a case statement) with a phantom type
newtype TCase a = 
  TCase {
    unTCase :: Core.Name}
  deriving (Eq, Ord, Read, Show)

_TCase = (Core.Name "hydra/phantoms.TCase")

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

_TElement = (Core.Name "hydra/phantoms.TElement")

_TElement_name = (Core.Name "name")

_TElement_term = (Core.Name "term")

-- | An association with a term-level field with a phantom type
newtype TField a = 
  TField {
    unTField :: Core.Field}
  deriving (Eq, Ord, Read, Show)

_TField = (Core.Name "hydra/phantoms.TField")

-- | 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")