diff --git a/ApproxFun-hs.cabal b/ApproxFun-hs.cabal
new file mode 100644
--- /dev/null
+++ b/ApproxFun-hs.cabal
@@ -0,0 +1,25 @@
+-- Initial ApproxFun-hs.cabal generated by cabal init.  For further 
+-- documentation, see http://haskell.org/cabal/users-guide/
+
+name:                ApproxFun-hs
+version:             0.1.0.0
+synopsis:            Function approximation
+-- description:         
+homepage:            https://github.com/idontgetoutmuch/ApproxFun.hs
+license:             BSD3
+license-file:        LICENSE
+author:              Dominic Steinitz
+maintainer:          dominic@steinitz.org
+-- copyright:           
+category:            Math
+build-type:          Simple
+extra-source-files:  README.md
+cabal-version:       >=1.10
+
+library
+  exposed-modules:     ChebyshevPoints
+  -- other-modules:       
+  -- other-extensions:    
+  build-depends:       base >=4.7 && <4.8, vector >=0.10 && <0.11
+  -- hs-source-dirs:      
+  default-language:    Haskell2010
diff --git a/ChebyshevPoints.hs b/ChebyshevPoints.hs
new file mode 100644
--- /dev/null
+++ b/ChebyshevPoints.hs
@@ -0,0 +1,20 @@
+module ChebyshevPoints where
+
+import Prelude hiding ( map )
+import Data.Vector.Unboxed ( Vector, map, enumFromN
+                           , enumFromStepN, Unbox, singleton
+                           )
+-- | Chebyshev points of the first kind aka Gauss-Chebyshev points
+chebyshevpoints1 :: (Floating a, Unbox a) => Int -> Vector a
+chebyshevpoints1 n = map (\k -> cos (pi * ((1.0 / 2+k) / n')))
+                         (enumFromStepN (-(n')) 1 n)
+  where
+    n' = fromIntegral n
+
+-- | Chebyshev points of the second kind aka Chebyshev-Lobatto points
+chebyshevpoints2  :: (Floating a, Unbox a) => Int -> Vector a
+chebyshevpoints2 n | n == 1    = singleton 0.0
+                   | otherwise = map (\k -> cos (pi * (k / (n' - 1))))
+                                 (enumFromStepN (n' - 1) (-1) n)
+  where
+    n' = fromIntegral n
diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,30 @@
+Copyright (c) 2015, Dominic Steinitz
+
+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 Dominic Steinitz 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/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,8 @@
+# ApproxFun.hs
+Function approximation in Haskell
+
+See also
+
+ * https://github.com/ApproxFun/ApproxFun.jl
+ * https://github.com/chebfun/chebfun
+
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
