]> ruin.nu Git - proglang.git/blobdiff - ErrM.hs
hopefully compiles properly
[proglang.git] / ErrM.hs
diff --git a/ErrM.hs b/ErrM.hs
new file mode 100644 (file)
index 0000000..b65a31b
--- /dev/null
+++ b/ErrM.hs
@@ -0,0 +1,16 @@
+-- BNF Converter: Error Monad
+-- Copyright (C) 2004  Author:  Aarne Ranta
+
+-- This file comes with NO WARRANTY and may be used FOR ANY PURPOSE.
+module ErrM where
+
+-- the Error monad: like Maybe type with error msgs
+
+data Err a = Ok a | Bad String
+  deriving (Read, Show, Eq)
+
+instance Monad Err where
+  return      = Ok
+  fail        = Bad
+  Ok a  >>= f = f a
+  Bad s >>= f = Bad s