summaryrefslogtreecommitdiff
path: root/src/Propellor/Types/Val.hs
diff options
context:
space:
mode:
authorJoey Hess2015-01-19 15:09:03 -0400
committerJoey Hess2015-01-19 15:09:03 -0400
commit603e6d340611dc15bca876c6374bf5938b8a3d4e (patch)
tree925f2eeb80d26a3c1f1d3c99acda2906d78f9b8e /src/Propellor/Types/Val.hs
parent04d4d0d6c43dcf7643417bb16927f314b55e42fc (diff)
split out types to improve haddock for Propellor.Types
Diffstat (limited to 'src/Propellor/Types/Val.hs')
-rw-r--r--src/Propellor/Types/Val.hs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/Propellor/Types/Val.hs b/src/Propellor/Types/Val.hs
new file mode 100644
index 00000000..8890bee8
--- /dev/null
+++ b/src/Propellor/Types/Val.hs
@@ -0,0 +1,22 @@
+module Propellor.Types.Val where
+
+import Data.Monoid
+
+import Propellor.Types.Empty
+
+data Val a = Val a | NoVal
+ deriving (Eq, Show)
+
+instance Monoid (Val a) where
+ mempty = NoVal
+ mappend old new = case new of
+ NoVal -> old
+ _ -> new
+
+instance Empty (Val a) where
+ isEmpty NoVal = True
+ isEmpty _ = False
+
+fromVal :: Val a -> Maybe a
+fromVal (Val a) = Just a
+fromVal NoVal = Nothing