diff --git a/HQu.cabal b/HQu.cabal
--- a/HQu.cabal
+++ b/HQu.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.4
 name:                HQu
-version:             0.0.0.4
+version:             0.0.0.5
 synopsis:            quantitative finance library
 description:         General purpose quantitative finance library
 homepage:            https://github.com/ghais/HQu
@@ -164,7 +164,7 @@
        if arch(x86_64)
             cc-options: -fPIC
  extra-libraries: gsl
- pkgconfig-depends: gsl
+ --pkgconfig-depends: gsl
 
 test-suite bachelier-test
   import:              common-options
diff --git a/src/Q/SortedVector.hs b/src/Q/SortedVector.hs
--- a/src/Q/SortedVector.hs
+++ b/src/Q/SortedVector.hs
@@ -9,18 +9,26 @@
   , maxElement
   ) where
 
-import qualified Data.Vector.Algorithms.Merge  as V (sort)
+import qualified Data.Vector.Algorithms.Merge  as Merge (sort)
 
-import           Data.Vector.Storable  (Storable)
-import qualified Data.Vector.Storable as V (Vector (..), fromList, length, head, last, modify)
-import           Q.Types
+import qualified Data.Vector.Storable as V (Storable, Vector, fromList, head, last, modify)
 
+
+-- | A sorted vector.
 newtype SortedVector a = SortedVector (V.Vector a)
 
-fromList as = SortedVector (V.modify V.sort $ V.fromList as)
-fromVector v = SortedVector (V.modify V.sort v)
+-- | construct a 'SortedVector' from a list
+fromList :: (V.Storable a, Ord a) => [a] -> SortedVector a
+fromList as = SortedVector (V.modify Merge.sort $ V.fromList as)
+
+fromVector :: (V.Storable a, Ord a) => V.Vector a -> SortedVector a
+fromVector v = SortedVector (V.modify Merge.sort v)
+
+fromSortedList :: V.Storable a => [a] -> SortedVector a
 fromSortedList xs = SortedVector $ V.fromList xs
 
 
+minElement :: V.Storable a => SortedVector a -> a
 minElement (SortedVector v) = V.head v
+maxElement :: V.Storable a => SortedVector a -> a
 maxElement (SortedVector v) = V.last v
