hydra-0.12.0: src/gen-main/haskell/Hydra/Accessors.hs
-- | A model for term access patterns
module Hydra.Accessors 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
data AccessorEdge =
AccessorEdge {
accessorEdgeSource :: AccessorNode,
accessorEdgePath :: AccessorPath,
accessorEdgeTarget :: AccessorNode}
deriving (Eq, Ord, Read, Show)
_AccessorEdge = (Core.Name "hydra.accessors.AccessorEdge")
_AccessorEdge_source = (Core.Name "source")
_AccessorEdge_path = (Core.Name "path")
_AccessorEdge_target = (Core.Name "target")
data AccessorGraph =
AccessorGraph {
accessorGraphNodes :: [AccessorNode],
accessorGraphEdges :: [AccessorEdge]}
deriving (Eq, Ord, Read, Show)
_AccessorGraph = (Core.Name "hydra.accessors.AccessorGraph")
_AccessorGraph_nodes = (Core.Name "nodes")
_AccessorGraph_edges = (Core.Name "edges")
data AccessorNode =
AccessorNode {
accessorNodeName :: Core.Name,
accessorNodeLabel :: String,
accessorNodeId :: String}
deriving (Eq, Ord, Read, Show)
_AccessorNode = (Core.Name "hydra.accessors.AccessorNode")
_AccessorNode_name = (Core.Name "name")
_AccessorNode_label = (Core.Name "label")
_AccessorNode_id = (Core.Name "id")
newtype AccessorPath =
AccessorPath {
unAccessorPath :: [TermAccessor]}
deriving (Eq, Ord, Read, Show)
_AccessorPath = (Core.Name "hydra.accessors.AccessorPath")
-- | A function which maps from a term to a particular immediate subterm
data TermAccessor =
TermAccessorAnnotatedSubject |
TermAccessorApplicationFunction |
TermAccessorApplicationArgument |
TermAccessorLambdaBody |
TermAccessorUnionCasesDefault |
TermAccessorUnionCasesBranch Core.Name |
TermAccessorLetEnvironment |
TermAccessorLetBinding Core.Name |
TermAccessorListElement Int |
TermAccessorMapKey Int |
TermAccessorMapValue Int |
TermAccessorOptionalTerm |
TermAccessorProductTerm Int |
TermAccessorRecordField Core.Name |
TermAccessorSetElement Int |
TermAccessorSumTerm |
TermAccessorTypeLambdaBody |
TermAccessorTypeApplicationTerm |
TermAccessorInjectionTerm |
TermAccessorWrappedTerm
deriving (Eq, Ord, Read, Show)
_TermAccessor = (Core.Name "hydra.accessors.TermAccessor")
_TermAccessor_annotatedSubject = (Core.Name "annotatedSubject")
_TermAccessor_applicationFunction = (Core.Name "applicationFunction")
_TermAccessor_applicationArgument = (Core.Name "applicationArgument")
_TermAccessor_lambdaBody = (Core.Name "lambdaBody")
_TermAccessor_unionCasesDefault = (Core.Name "unionCasesDefault")
_TermAccessor_unionCasesBranch = (Core.Name "unionCasesBranch")
_TermAccessor_letEnvironment = (Core.Name "letEnvironment")
_TermAccessor_letBinding = (Core.Name "letBinding")
_TermAccessor_listElement = (Core.Name "listElement")
_TermAccessor_mapKey = (Core.Name "mapKey")
_TermAccessor_mapValue = (Core.Name "mapValue")
_TermAccessor_optionalTerm = (Core.Name "optionalTerm")
_TermAccessor_productTerm = (Core.Name "productTerm")
_TermAccessor_recordField = (Core.Name "recordField")
_TermAccessor_setElement = (Core.Name "setElement")
_TermAccessor_sumTerm = (Core.Name "sumTerm")
_TermAccessor_typeLambdaBody = (Core.Name "typeLambdaBody")
_TermAccessor_typeApplicationTerm = (Core.Name "typeApplicationTerm")
_TermAccessor_injectionTerm = (Core.Name "injectionTerm")
_TermAccessor_wrappedTerm = (Core.Name "wrappedTerm")