From 1cd7f557f0c89714c47855f38583073c313674f2 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 23 Oct 2015 17:25:31 -0400 Subject: generalize check Hmm, do I really need my own type class for LiftPropellor? This seems like a general problem so I am probably reinventing the wheel. --- src/Propellor/Property.hs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/Propellor/Property.hs') diff --git a/src/Propellor/Property.hs b/src/Propellor/Property.hs index 342db1a5..95805054 100644 --- a/src/Propellor/Property.hs +++ b/src/Propellor/Property.hs @@ -142,11 +142,12 @@ ensureProperty :: Property NoInfo -> Propellor Result ensureProperty = catchPropellor . propertySatisfy -- | Makes a Property only need to do anything when a test succeeds. -check :: IO Bool -> Property i -> Property i -check c p = adjustPropertySatisfy p $ \satisfy -> ifM (liftIO c) - ( satisfy - , return NoChange - ) +check :: (LiftPropellor m) => m Bool -> Property i -> Property i +check c p = adjustPropertySatisfy p $ \satisfy -> + ifM (liftPropellor c) + ( satisfy + , return NoChange + ) -- | Tries the first property, but if it fails to work, instead uses -- the second. -- cgit v1.2.3