summaryrefslogtreecommitdiff
path: root/src/Grasp/GEdge.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Grasp/GEdge.hs')
-rw-r--r--src/Grasp/GEdge.hs58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/Grasp/GEdge.hs b/src/Grasp/GEdge.hs
new file mode 100644
index 0000000..fcd826a
--- /dev/null
+++ b/src/Grasp/GEdge.hs
@@ -0,0 +1,58 @@
+module Grasp.GEdge (
+ GEdge,
+ EdgeLabel,
+
+ mkGEdge,
+ mkLabel,
+
+ toSrc,
+ toDest,
+ toLabel,
+ toLEdge
+ ) where
+
+
+
+
+import Grasp.Graph( Node, LEdge )
+
+
+
+
+newtype EdgeLabel = EdgeLabel String
+ deriving (Show, Eq)
+
+newtype GEdge = GEdge (LEdge EdgeLabel)
+ deriving (Show, Eq)
+
+
+
+
+mkGEdge :: LEdge EdgeLabel -> GEdge
+mkGEdge = GEdge
+
+
+
+mkLabel :: String -> EdgeLabel
+mkLabel = EdgeLabel
+
+
+
+toSrc :: GEdge -> String
+toSrc (GEdge (x,_,_)) = x
+
+
+
+toDest :: GEdge -> String
+toDest (GEdge (_,y,_)) = y
+
+
+
+toLabel :: GEdge -> EdgeLabel
+toLabel (GEdge (_,_,z)) = z
+
+
+
+toLEdge :: GEdge -> LEdge EdgeLabel
+toLEdge (GEdge e) = e
+