summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compiler/GF/Data/Operations.hs5
-rw-r--r--src/compiler/GF/Data/Utilities.hs17
2 files changed, 14 insertions, 8 deletions
diff --git a/src/compiler/GF/Data/Operations.hs b/src/compiler/GF/Data/Operations.hs
index 781f0a133..366f5a669 100644
--- a/src/compiler/GF/Data/Operations.hs
+++ b/src/compiler/GF/Data/Operations.hs
@@ -15,7 +15,7 @@
-----------------------------------------------------------------------------
module GF.Data.Operations (-- * misc functions
- ifNull, onSnd,
+ ifNull,
-- * the Error monad
Err(..), err, maybeErr, testErr, errVal, errIn,
@@ -76,9 +76,6 @@ infixr 5 +++++
ifNull :: b -> ([a] -> b) -> [a] -> b
ifNull b f xs = if null xs then b else f xs
-onSnd :: (a -> b) -> (c,a) -> (c,b)
-onSnd f (x, y) = (x, f y)
-
-- the Error monad
-- | analogue of @maybe@
diff --git a/src/compiler/GF/Data/Utilities.hs b/src/compiler/GF/Data/Utilities.hs
index 50269bef1..f953938c8 100644
--- a/src/compiler/GF/Data/Utilities.hs
+++ b/src/compiler/GF/Data/Utilities.hs
@@ -130,11 +130,20 @@ both f g x y = g (f x) (f y)
-- * functions on pairs
-mapFst :: (a -> a') -> (a, b) -> (a', b)
-mapFst f (a, b) = (f a, b)
+apFst :: (a -> a') -> (a, b) -> (a', b)
+apFst f (a, b) = (f a, b)
-mapSnd :: (b -> b') -> (a, b) -> (a, b')
-mapSnd f (a, b) = (a, f b)
+apSnd :: (b -> b') -> (a, b) -> (a, b')
+apSnd f (a, b) = (a, f b)
+
+apBoth :: (a -> b) -> (a, a) -> (b, b)
+apBoth f (x, y) = (f x, f y)
+
+-- * functions on lists of pairs
+
+mapFst = map . apFst
+mapSnd = map . apSnd
+mapBoth = map . apBoth
-- * functions on monads