diff --git a/src/TypeUnary/Vec.hs b/src/TypeUnary/Vec.hs
--- a/src/TypeUnary/Vec.hs
+++ b/src/TypeUnary/Vec.hs
@@ -4,6 +4,7 @@
            , UndecidableInstances
            , ScopedTypeVariables, CPP
            , RankNTypes
+           , MultiParamTypeClasses, FunctionalDependencies
   #-}
 {-# OPTIONS_GHC -Wall -fno-warn-incomplete-patterns #-}
 ----------------------------------------------------------------------
@@ -36,6 +37,7 @@
   , un1, un2, un3, un4
   , get0, get1, get2, get3
   , get, swizzle, split
+  , ToVec(..)
   ) where
 
 import Prelude hiding (foldr,sum)
@@ -494,6 +496,15 @@
 --                TypeUnary.Vec.take :: IsNat n => Vec (n :+: m) a -> Vec n a
 --     at /Users/conal/Haskell/type-unary/src/TypeUnary/Vec.hs:488:1-18
 --   NB: `:+:' is a type function, and may not be injective
+
+{--------------------------------------------------------------------
+    Conversion to vectors
+--------------------------------------------------------------------}
+
+class ToVec c n a | c -> n a where
+  toVec :: c -> Vec n a
+
+instance ToVec (Vec n a) n a where toVec = id
 
 {--------------------------------------------------------------------
     Misc
diff --git a/type-unary.cabal b/type-unary.cabal
--- a/type-unary.cabal
+++ b/type-unary.cabal
@@ -1,5 +1,5 @@
 Name:                type-unary
-Version:             0.1.1
+Version:             0.1.2
 Cabal-Version:       >= 1.2
 Synopsis:            
   Type-level and typed unary natural numbers, vectors, inequality proofs
