1
0
forked from GitHub/gf-core

new GFCC format in GF/GFCC

This commit is contained in:
aarne
2007-10-04 21:38:59 +00:00
parent 6651e9e1d0
commit 41201c2d4e
18 changed files with 2908 additions and 102 deletions

26
src/GF/GFCC/ErrM.hs Normal file
View File

@@ -0,0 +1,26 @@
-- BNF Converter: Error Monad
-- Copyright (C) 2004 Author: Aarne Ranta
-- This file comes with NO WARRANTY and may be used FOR ANY PURPOSE.
module GF.GFCC.ErrM where
-- the Error monad: like Maybe type with error msgs
import Control.Monad (MonadPlus(..), liftM)
data Err a = Ok a | Bad String
deriving (Read, Show, Eq, Ord)
instance Monad Err where
return = Ok
fail = Bad
Ok a >>= f = f a
Bad s >>= f = Bad s
instance Functor Err where
fmap = liftM
instance MonadPlus Err where
mzero = Bad "Err.mzero"
mplus (Bad _) y = y
mplus x _ = x