diff --git a/generic-maybe.cabal b/generic-maybe.cabal
--- a/generic-maybe.cabal
+++ b/generic-maybe.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                generic-maybe
-version:             0.1.0.1
+version:             0.1.1.0
 synopsis:            A generic version of Data.Maybe
 description:
  This module is a drop in replacement for 'Data.Maybe'. It generalizes
@@ -20,10 +20,10 @@
  After which you can use the functions, like your type was 'Data.Maybe.Maybe'
  .
  >> fromMaybe 'a' Fail
- >Success 'a'
+ >'a'
  . 
  >> fromMaybe 'a' $ Success 'b'
- >Success 'b'
+ >'b'
 homepage:            https://github.com/jfischoff/generic-maybe
 license:             BSD3
 license-file:        LICENSE
diff --git a/src/Generics/Maybe.hs b/src/Generics/Maybe.hs
--- a/src/Generics/Maybe.hs
+++ b/src/Generics/Maybe.hs
@@ -75,32 +75,32 @@
 -- > fromMaybe :: a -> Maybe a -> Maybe a
 --
 -- >>> fromMaybe 'a' Nothing
--- Just 'a'
+-- 'a'
 -- 
 -- >>> fromMaybe 'a' $ Just 'b'
--- Just 'b'
+-- 'b'
 -- 
 -- >>> fromMaybe 'a' Fail
--- Success 'a'
+-- 'a'
 -- 
 -- >>> fromMaybe 'a' $ Success 'b'
--- Success 'b'
+-- 'b'
 -- 
 -- >>> fromMaybe Zero Zero
--- Succ Zero
+-- Zero
 -- 
 -- >>> fromMaybe Zero $ Succ (Succ Zero)
--- Succ (Succ Zero)
+-- Succ Zero
 fromMaybe :: MaybeLike maybe a d u m b y
-          => a -> maybe -> maybe
-fromMaybe x = over gsimple (fromMaybe' x) 
+          => a -> maybe -> a
+fromMaybe x = fromMaybe' x . view gsimple 
 
 fromMaybe' :: a 
            -> (U1 :+: Rec0 a) b
-           -> (U1 :+: Rec0 a) b
+           -> a
 fromMaybe' def = \case 
-   L1 U1 -> R1 $ K1 def
-   x     -> x 
+   L1 U1 -> def
+   R1 (K1 x)     -> x 
 -- | A generalized version of 'Data.Maybe.maybe' 
 --
 -- > maybe :: b -> (a -> b) -> Maybe a -> Maybe b
