summaryrefslogtreecommitdiff
path: root/src/PGF/CId.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/PGF/CId.hs')
-rw-r--r--src/PGF/CId.hs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/PGF/CId.hs b/src/PGF/CId.hs
new file mode 100644
index 000000000..161529308
--- /dev/null
+++ b/src/PGF/CId.hs
@@ -0,0 +1,18 @@
+module PGF.CId (CId(..), wildCId, mkCId, prCId) where
+
+import Data.ByteString.Char8 as BS
+
+-- | An abstract data type that represents
+-- function identifier in PGF.
+newtype CId = CId BS.ByteString deriving (Eq,Ord,Show)
+
+wildCId :: CId
+wildCId = CId (BS.singleton '_')
+
+-- | Creates a new identifier from 'String'
+mkCId :: String -> CId
+mkCId s = CId (BS.pack s)
+
+-- | Renders the identifier as 'String'
+prCId :: CId -> String
+prCId (CId x) = BS.unpack x