diff --git a/Data/Vector/Instances.hs b/Data/Vector/Instances.hs
new file mode 100644
--- /dev/null
+++ b/Data/Vector/Instances.hs
@@ -0,0 +1,80 @@
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Data.Vector.Instances
+-- Copyright   :  (c) Edward Kmett 2010
+-- License     :  BSD3
+-- Maintainer  :  ekmett@gmail.com
+-- Stability   :  experimental
+-- Portability :  portable
+--
+-----------------------------------------------------------------------------
+
+module Data.Vector.Instances () where
+
+import Prelude hiding ((++))
+import Control.Applicative
+import Control.Monad
+import Data.Foldable (Foldable(..))
+import Data.Traversable (Traversable(..))
+import Data.Monoid
+import qualified Data.Vector as Vector
+import qualified Data.Vector.Generic as G
+import qualified Data.Vector.Fusion.Stream as Stream
+import Data.Vector.Fusion.Stream.Size
+import Data.Vector (Vector, (++))
+
+instance Functor Vector where
+    fmap = Vector.map
+    {-# INLINE fmap #-}
+
+instance Monad Vector where
+    return = Vector.singleton
+    {-# INLINE return #-}
+    v >>= f = Vector.concatMap f v
+    {-# INLINE (>>=) #-}
+    fail _ = Vector.empty
+    {-# INLINE fail #-}
+
+instance MonadPlus Vector where
+    mzero = Vector.empty
+    {-# INLINE mzero #-}
+    mplus = (++)
+    {-# INLINE mplus #-}
+
+instance Monoid (Vector a) where
+    mempty = Vector.empty
+    {-# INLINE mempty #-}
+    mappend = (++)
+    {-# INLINE mappend #-}
+
+instance Applicative Vector where
+    pure = Vector.singleton
+    {-# INLINE pure #-}
+    fs <*> as =
+        G.unstream $ Stream.sized results (Exact n)
+        where
+            n = Vector.length fs * Vector.length as
+            results = Stream.concatMap body $ G.stream fs
+            body f = Stream.map f $ G.stream as
+    {-# INLINE (<*>) #-}
+
+instance Alternative Vector where
+    (<|>) = (++)
+    {-# INLINE (<|>) #-}
+    empty = Vector.empty
+    {-# INLINE empty #-}
+
+instance Foldable Vector where
+    foldl = Vector.foldl
+    {-# INLINE foldl #-}
+    foldr = Vector.foldr
+    {-# INLINE foldr #-}
+    foldl1 = Vector.foldl1
+    {-# INLINE foldl1 #-}
+    foldr1 = Vector.foldr1
+    {-# INLINE foldr1 #-}
+
+instance Traversable Vector where
+    traverse f v
+        = Vector.fromListN (Vector.length v) <$> traverse f (Vector.toList v)
+    {-# INLINE traverse #-}
diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,30 @@
+Copyright (c)2010, Edward Kmett
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+
+    * Neither the name of Edward Kmett nor the names of other
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/vector-instances.cabal b/vector-instances.cabal
new file mode 100644
--- /dev/null
+++ b/vector-instances.cabal
@@ -0,0 +1,18 @@
+Name:                vector-instances
+Version:             0.0.1
+Synopsis:            Orphan Instances for 'Data.Vector'
+Homepage:            http://patch-tag.com/r/ekmett/vector-instances
+License:             BSD3
+License-file:        LICENSE
+Author:              Edward Kmett
+Maintainer:          ekmett@gmail.com
+Category:            Data, Data Structures
+Build-type:          Simple
+Cabal-version:       >=1.2
+
+Library
+  Exposed-modules:     Data.Vector.Instances
+
+  Build-depends:
+    base >= 4 && < 5,
+    vector >= 0.6.0.1 && < 7
