From 6060531fd561afa1f6f03c0c6d223a73eece7886 Mon Sep 17 00:00:00 2001
From: Spencer Janssen <sjanssen@cse.unl.edu>
Date: Mon, 1 Oct 2007 17:15:55 +0200
Subject: Use newtype deriving for Invisible

darcs-hash:20071001151555-a5988-3057c215062689a0291ccee0af1c50ab795ecf61.gz
---
 Invisible.hs | 12 +++---------
 1 file 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 ()
-- 
cgit v1.2.3