pattern
Safe HaskellSafe-Inferred
LanguageHaskell2010

Pattern.Graph.GraphClassifier

Description

GraphClassifier defines the shared vocabulary for categorizing pattern structures.

Synopsis

Documentation

data GraphClass extra Source #

Represents the five structural categories of graph elements. GOther allows open extension.

Constructors

GNode 
GRelationship 
GAnnotation 
GWalk 
GOther extra 

Instances

Instances details
Functor GraphClass Source # 
Instance details

Defined in Pattern.Graph.GraphClassifier

Methods

fmap :: (a -> b) -> GraphClass a -> GraphClass b #

(<$) :: a -> GraphClass b -> GraphClass a #

Foldable GraphClass Source # 
Instance details

Defined in Pattern.Graph.GraphClassifier

Methods

fold :: Monoid m => GraphClass m -> m #

foldMap :: Monoid m => (a -> m) -> GraphClass a -> m #

foldMap' :: Monoid m => (a -> m) -> GraphClass a -> m #

foldr :: (a -> b -> b) -> b -> GraphClass a -> b #

foldr' :: (a -> b -> b) -> b -> GraphClass a -> b #

foldl :: (b -> a -> b) -> b -> GraphClass a -> b #

foldl' :: (b -> a -> b) -> b -> GraphClass a -> b #

foldr1 :: (a -> a -> a) -> GraphClass a -> a #

foldl1 :: (a -> a -> a) -> GraphClass a -> a #

toList :: GraphClass a -> [a] #

null :: GraphClass a -> Bool #

length :: GraphClass a -> Int #

elem :: Eq a => a -> GraphClass a -> Bool #

maximum :: Ord a => GraphClass a -> a #

minimum :: Ord a => GraphClass a -> a #

sum :: Num a => GraphClass a -> a #

product :: Num a => GraphClass a -> a #

Traversable GraphClass Source # 
Instance details

Defined in Pattern.Graph.GraphClassifier

Methods

traverse :: Applicative f => (a -> f b) -> GraphClass a -> f (GraphClass b) #

sequenceA :: Applicative f => GraphClass (f a) -> f (GraphClass a) #

mapM :: Monad m => (a -> m b) -> GraphClass a -> m (GraphClass b) #

sequence :: Monad m => GraphClass (m a) -> m (GraphClass a) #

Show extra => Show (GraphClass extra) Source # 
Instance details

Defined in Pattern.Graph.GraphClassifier

Methods

showsPrec :: Int -> GraphClass extra -> ShowS #

show :: GraphClass extra -> String #

showList :: [GraphClass extra] -> ShowS #

Eq extra => Eq (GraphClass extra) Source # 
Instance details

Defined in Pattern.Graph.GraphClassifier

Methods

(==) :: GraphClass extra -> GraphClass extra -> Bool #

(/=) :: GraphClass extra -> GraphClass extra -> Bool #

data GraphClassifier extra v Source #

Pluggable record of functions defining the categorization logic.

Constructors

GraphClassifier 

Fields

classifyByShape :: GraphValue v => Pattern v -> GraphClass () Source #

Default classification logic based on the shape/arity of the pattern. Falls back to 'GOther ()' for patterns that don't match standard graph structures.

canonicalClassifier :: GraphValue v => GraphClassifier () v Source #

The standard classifier used for canonical graph construction.

class Ord (Id v) => GraphValue v where Source #

Typeclass providing identity and classification for the value type v. Used to classify patterns as NodeAnnotationRelationshipWalkUnrecognized.

Associated Types

type Id v Source #

Methods

identify :: v -> Id v Source #

Instances

Instances details
GraphValue Subject Source # 
Instance details

Defined in Pattern.PatternGraph

Associated Types

type Id Subject 
Instance details

Defined in Pattern.PatternGraph