packages feed

graph-rewriting-0.5.1: GraphRewriting/Pattern/Internal.hs

{-# LANGUAGE UnicodeSyntax #-}
module GraphRewriting.Pattern.Internal where

import GraphRewriting.Graph.Types
import Control.Monad.Reader


-- | A pattern represents a graph scrutinisation that memorises all the scrutinised nodes during matching.
newtype Pattern n a = Pattern {pattern ∷ Match → ReaderT (Graph n) [] (Match, a)}

-- | Nodes matched in the evaluation of a pattern with the lastly matched node at the head
type Match = [Node]