summaryrefslogtreecommitdiff
path: root/src/compiler/GF/Grammar/Lockfield.hs
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2013-11-20 00:45:33 +0000
committerhallgren <hallgren@chalmers.se>2013-11-20 00:45:33 +0000
commit018c9838ed31571b699118ae75b1d62d5527fd77 (patch)
treee3ff7163a838915020f2a1e355c984d22df7ad9c /src/compiler/GF/Grammar/Lockfield.hs
parentddac5f9e5aa935f4c154253831a36e49a48cdc8d (diff)
Reduced clutter in monadic code
+ Eliminated vairous ad-hoc coersion functions between specific monads (IO, Err, IOE, Check) in favor of more general lifting functions (liftIO, liftErr). + Generalized many basic monadic operations from specific monads to arbitrary monads in the appropriate class (MonadIO and/or ErrorMonad), thereby completely eliminating the need for lifting functions in lots of places. This can be considered a small step forward towards a cleaner compiler API and more malleable compiler code in general.
Diffstat (limited to 'src/compiler/GF/Grammar/Lockfield.hs')
-rw-r--r--src/compiler/GF/Grammar/Lockfield.hs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/compiler/GF/Grammar/Lockfield.hs b/src/compiler/GF/Grammar/Lockfield.hs
index 5c2f5d0f0..53e58a3ad 100644
--- a/src/compiler/GF/Grammar/Lockfield.hs
+++ b/src/compiler/GF/Grammar/Lockfield.hs
@@ -20,9 +20,9 @@ import GF.Infra.Ident
import GF.Grammar.Grammar
import GF.Grammar.Macros
-import GF.Data.Operations
+import GF.Data.Operations(ErrorMonad,Err(..))
-lockRecType :: Ident -> Type -> Err Type
+lockRecType :: ErrorMonad m => Ident -> Type -> m Type
lockRecType c t@(RecType rs) =
let lab = lockLabel c in
return $ if elem lab (map fst rs) || elem (showIdent c) ["String","Int"]