diff --git a/src/Type/Data/Bool.hs b/src/Type/Data/Bool.hs
--- a/src/Type/Data/Bool.hs
+++ b/src/Type/Data/Bool.hs
@@ -3,9 +3,13 @@
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE GADTs #-}
 
 module Type.Data.Bool
-    ( True
+    ( C(switch)
+    , Singleton(False, True)
+    , singleton
+    , True
     , true
     , False
     , false
@@ -24,6 +28,17 @@
 
 import qualified Prelude
 
+
+class C bool where switch :: f False -> f True -> f bool
+instance C False where switch f _ = f
+instance C True where switch _ f = f
+
+data Singleton bool where
+    False :: Singleton False
+    True :: Singleton True
+
+singleton :: (C bool) => Singleton bool
+singleton = switch False True
 
 data True deriving (Typeable)
 true :: Proxy True
diff --git a/src/Type/Data/Num/Unary.hs b/src/Type/Data/Num/Unary.hs
--- a/src/Type/Data/Num/Unary.hs
+++ b/src/Type/Data/Num/Unary.hs
@@ -2,8 +2,10 @@
 {-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE TypeOperators #-}
 {-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE GADTs #-}
 module Type.Data.Num.Unary (
     Unary, unary, Un, Zero, Succ, zero, succ,
+    HeadSingleton(Zero, Succ), headSingleton,
     Singleton(..), singleton, singletonFromProxy,
     integerFromSingleton, integralFromSingleton,
     integralFromProxy,
@@ -69,6 +71,14 @@
 type instance _x :*: Zero = Zero
 type instance x :*: Succ y = x :+: (x :*: y)
 
+
+
+data HeadSingleton n where
+    Zero :: HeadSingleton Zero
+    Succ :: (Natural n) => HeadSingleton (Succ n)
+
+headSingleton :: (Natural n) => HeadSingleton n
+headSingleton = switchNat Zero Succ
 
 
 newtype Singleton n = Singleton Integer
diff --git a/tfp.cabal b/tfp.cabal
--- a/tfp.cabal
+++ b/tfp.cabal
@@ -1,5 +1,5 @@
 name:           tfp
-version:        1.0.1.1
+version:        1.0.2
 build-type:     Simple
 license:        BSD3
 license-file:   LICENSE
@@ -24,12 +24,12 @@
 
 source-repository head
   type:         darcs
-  location:     http://hub.darcs.net/thielema/tfp/
+  location:     https://hub.darcs.net/thielema/tfp/
 
 source-repository this
-  tag:          1.0.1.1
+  tag:          1.0.2
   type:         darcs
-  location:     http://hub.darcs.net/thielema/tfp/
+  location:     https://hub.darcs.net/thielema/tfp/
 
 
 library {
