From 48f9af6fc69f8daab3a80d041bb760d1f6d17406 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 17 Mar 2016 12:37:37 -0400 Subject: comments --- src/Propellor/Types/Target.hs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/Propellor') diff --git a/src/Propellor/Types/Target.hs b/src/Propellor/Types/Target.hs index e4d8c9c1..1d8107f1 100644 --- a/src/Propellor/Types/Target.hs +++ b/src/Propellor/Types/Target.hs @@ -53,7 +53,8 @@ target => Targeting newtarget -> Property (Targeting oldtarget) -> Property (Targeting combinedtarget) -target newtarget (Property oldtarget a) = Property (intersectTarget oldtarget newtarget) a +target newtarget (Property oldtarget a) = + Property (intersectTarget oldtarget newtarget) a -- | Picks one of the two input properties to use, -- depending on the targeted OS. @@ -82,7 +83,7 @@ foo :: Property (Targeting '[OSFreeBSD]) foo = mkProperty' freeBSD $ \t -> do ensureProperty t jail ---bar :: Property (Targeting '[OSDebian, OSFreeBSD]) +bar :: Property (Targeting '[OSDebian, OSFreeBSD]) bar = aptinstall `orProperty` jail aptinstall :: Property DebianOnly @@ -98,7 +99,13 @@ jail = mkProperty freeBSD $ do data Target = OSDebian | OSBuntish | OSFreeBSD deriving (Show, Eq) --- | A type-level and value-level list of targets. +-- | A type-level and value-level set of targets. +-- +-- Note that the current implementation uses a list, although most +-- operations remove duplicate values. The ordering of the list should not +-- matter; it would be better to use the type-level-sets package, but it +-- needs a newer version of ghc than the minimum version propellor +-- supports. data Targeting (targets :: [Target]) = Targeting [Target] deriving (Show, Eq) -- cgit v1.2.3