diff --git a/.travis.yml b/.travis.yml index 3ff64861b..4698c6a7a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,15 +8,6 @@ language: c # release of a major GHC version. Setting HPVER implictly sets # GHCVER. Omit lines with versions you don't need/want testing for. env: - - CABALVER=1.16 GHCVER=6.12.3 - - CABALVER=1.16 GHCVER=7.0.1 - - CABALVER=1.16 GHCVER=7.0.2 - - CABALVER=1.16 GHCVER=7.0.3 - - CABALVER=1.16 GHCVER=7.0.4 - - CABALVER=1.16 GHCVER=7.2.1 - - CABALVER=1.16 GHCVER=7.2.2 - - CABALVER=1.16 GHCVER=7.4.1 - - CABALVER=1.16 GHCVER=7.4.2 - CABALVER=1.16 GHCVER=7.6.1 - CABALVER=1.16 GHCVER=7.6.2 - CABALVER=1.18 GHCVER=7.6.3 @@ -26,11 +17,8 @@ env: - CABALVER=1.18 GHCVER=7.8.4 - CABALVER=1.22 GHCVER=7.10.1 - CABALVER=1.22 GHCVER=7.10.2 -# - CABALVER=head GHCVER=head - - HPVER=2013.2.0.0 - - HPVER=2012.4.0.0 - - HPVER=2012.2.0.0 - - HPVER=2011.4.0.0 + - CABALVER=1.22 GHCVER=7.10.3 + - CABALVER=head GHCVER=head # Note: the distinction between `before_install` and `install` is not # important. @@ -93,7 +81,6 @@ script: # (including tests/benchmarks) - cabal build - - cabal test - cabal check # tests that a source-distribution can be generated diff --git a/protolude.cabal b/protolude.cabal index 3c7c7f011..d69217b4c 100644 --- a/protolude.cabal +++ b/protolude.cabal @@ -33,6 +33,7 @@ library Debug List Monad + Show Unsafe default-extensions: diff --git a/src/Monad.hs b/src/Monad.hs index 027fdd171..cc31e98cb 100644 --- a/src/Monad.hs +++ b/src/Monad.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE CPP #-} {-# LANGUAGE NoImplicitPrelude #-} module Monad ( @@ -38,7 +39,12 @@ module Monad ( ) where import Prelude (concat, seq) + +#if (__GLASGOW_HASKELL__ >= 710) +import Control.Monad hiding ((<$!>)) +#else import Control.Monad +#endif concatMapM :: (Monad m) => (a -> m [b]) -> [a] -> m [b] concatMapM f xs = liftM concat (mapM f xs) @@ -54,3 +60,10 @@ liftM2' f a b = do let z = f x y z `seq` return z {-# INLINE liftM2' #-} + +(<$!>) :: Monad m => (a -> b) -> m a -> m b +f <$!> m = do + x <- m + let z = f x + z `seq` return z +{-# INLINE (<$!>) #-}