aboutsummaryrefslogtreecommitdiffstats
path: root/Invisible.hs
diff options
context:
space:
mode:
authorSpencer Janssen <sjanssen@cse.unl.edu>2007-10-01 17:15:55 +0200
committerSpencer Janssen <sjanssen@cse.unl.edu>2007-10-01 17:15:55 +0200
commit6060531fd561afa1f6f03c0c6d223a73eece7886 (patch)
tree07078eda7cc409b568278352e73f4c5f21b683eb /Invisible.hs
parent7032bc17bbb62c79dc895d05ec62e75e1f751edb (diff)
downloadXMonadContrib-6060531fd561afa1f6f03c0c6d223a73eece7886.tar.gz
XMonadContrib-6060531fd561afa1f6f03c0c6d223a73eece7886.tar.xz
XMonadContrib-6060531fd561afa1f6f03c0c6d223a73eece7886.zip
Use newtype deriving for Invisible
darcs-hash:20071001151555-a5988-3057c215062689a0291ccee0af1c50ab795ecf61.gz
Diffstat (limited to 'Invisible.hs')
-rw-r--r--Invisible.hs12
1 files changed, 3 insertions, 9 deletions
diff --git a/Invisible.hs b/Invisible.hs
index 91659c5..6069364 100644
--- a/Invisible.hs
+++ b/Invisible.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : XMonadContrib.Invisible
@@ -23,7 +25,7 @@ module XMonadContrib.Invisible (
-- $usage
-- A data type to store the layout state
-data Invisible m a = I (m a)
+newtype Invisible m a = I (m a) deriving (Monad, Functor)
instance (Functor m, Monad m) => Read (Invisible m a) where
readsPrec _ s = [(fail "Read Invisible", s)]
@@ -31,14 +33,6 @@ instance (Functor m, Monad m) => Read (Invisible m a) where
instance Monad m => Show (Invisible m a) where
show _ = ""
-instance (Functor m, Monad m) => Monad (Invisible m) where
- return a = I (return a)
- m >>= f = m >>= f
- fail s = I (fail s)
-
-instance (Functor m, Monad m) => Functor (Invisible m) where
- fmap f (I x) = I (fmap f x)
-
whenIJust :: (Monad m) => Invisible Maybe a -> (a -> m ()) -> m ()
whenIJust (I (Just x)) f = f x
whenIJust (I Nothing) _ = return ()