X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=c%CE%BBash%2FCLasH%2FUtils.hs;h=731de270b56ccb9764d589bc18102dea6d90705e;hb=63fcf1474e5b94cbfcee702edf6a334601329dfe;hp=705a46603b42f3f4e4ab16dbbffecae7cd512dd2;hpb=fcadaad2e47e5f6cba4b9f7d4341477b8fe74158;p=matthijs%2Fmaster-project%2Fc%CE%BBash.git diff --git "a/c\316\273ash/CLasH/Utils.hs" "b/c\316\273ash/CLasH/Utils.hs" index 705a466..731de27 100644 --- "a/c\316\273ash/CLasH/Utils.hs" +++ "b/c\316\273ash/CLasH/Utils.hs" @@ -1,13 +1,10 @@ -module CLasH.Utils - ( listBindings - , listBind - , makeCached - ) where +module CLasH.Utils where -- Standard Imports import qualified Maybe import Data.Accessor import qualified Data.Map as Map +import qualified Control.Monad as Monad import qualified Control.Monad.Trans.State as State -- GHC API @@ -69,3 +66,19 @@ makeCached key accessor create = do value <- create modA accessor (Map.insert key value) return value + +unzipM :: (Monad m) => + m [(a, b)] + -> m ([a], [b]) +unzipM = Monad.liftM unzip + +catMaybesM :: (Monad m) => + m [Maybe a] + -> m [a] +catMaybesM = Monad.liftM Maybe.catMaybes + +concatM :: (Monad m) => + m [[a]] + -> m [a] +concatM = Monad.liftM concat +