diff --git a/category-extras.cabal b/category-extras.cabal
--- a/category-extras.cabal
+++ b/category-extras.cabal
@@ -1,10 +1,10 @@
 name:          category-extras
 category:      Control, Monads, Comonads
-version:       0.53.3
+version:       0.53.4
 license:       BSD3
 cabal-version: >= 1.2
 license-file:  LICENSE
-author:        Edward A. Kmett, Dave Menendez
+author:        Edward A. Kmett
 maintainer:    Edward A. Kmett <ekmett@gmail.com>
 stability:     experimental
 homepage:      http://comonad.com/reader/
diff --git a/src/Control/Category/Discrete.hs b/src/Control/Category/Discrete.hs
--- a/src/Control/Category/Discrete.hs
+++ b/src/Control/Category/Discrete.hs
@@ -12,10 +12,15 @@
 -------------------------------------------------------------------------------------------
 module Control.Category.Discrete
 	( Discrete(Refl)
+	, mapDiscrete
+	, cast
+	, invDiscrete
 	) where
 
 import Prelude hiding (id,(.))
 import Control.Category
+import Unsafe.Coerce (unsafeCoerce)
+-- import Control.Functor.Categorical
 
 data Discrete a b where 
 	Refl :: Discrete a a
@@ -24,4 +29,13 @@
 	id = Refl
 	Refl . Refl = Refl
 
--- HasTerminalObject _|_ ?
+-- instance CFunctor f Discrete Discrete where cmap = mapDiscrete
+
+mapDiscrete :: Discrete a b -> Discrete (f a) (f b)
+mapDiscrete Refl = Refl
+
+cast :: Discrete a b -> a -> b
+cast Refl = unsafeCoerce
+
+invDiscrete :: Discrete a b -> Discrete b a
+invDiscrete Refl = Refl
