diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,28 @@
+Copyright © 2004       Oleg Kiselyov (Fleet Numerical Meteorology and Oceanography Center)
+Copyright © 2004       Ralf Lämmel (Centrum Wiskunde & Informatica, Vrije Universiteit Amsterdam)
+Copyright © 2004       Keean Schupke (Imperial College London)
+Copyright © 2008, 2009 Brandenburgische Technische Universität Cottbus
+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 the copyright holders nor the names of the 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 HOLDERS 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.lhs b/Setup.lhs
new file mode 100644
--- /dev/null
+++ b/Setup.lhs
@@ -0,0 +1,4 @@
+#!/usr/bin/env runghc
+
+> import Distribution.Simple
+> main = defaultMain
diff --git a/src/Data/TypeEq.hs b/src/Data/TypeEq.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/TypeEq.hs
@@ -0,0 +1,45 @@
+module Data.TypeEq (
+
+    TypeEq,
+    typeEq
+
+) where
+
+    -- Data
+    import Data.TypeLevel.Bool
+
+    class TypeEq type1 type2 result | type1 type2 -> result where
+
+        typeEq :: type1 -> type2 -> result
+
+    instance TypeEq soleType soleType True where
+
+        typeEq _ _ = true
+
+    instance (TypeCast False result) => TypeEq type1 type2 result where
+
+        typeEq _ _ = typeCast false
+
+    class TypeCast type1 type2 | type1 -> type2, type2 -> type1 where
+
+        typeCast :: type1 -> type2
+
+    instance (TypeCastHelper () type1 type2) => TypeCast type1 type2 where
+
+        typeCast = typeCastHelper ()
+
+    class TypeCastHelper dummy type1 type2 | dummy type1 -> type2, dummy type2 -> type1 where
+
+        typeCastHelper :: dummy -> type1 -> type2
+
+    instance (TypeCastHelperHelper dummy type1 type2) => TypeCastHelper dummy type1 type2 where
+
+        typeCastHelper = typeCastHelperHelper
+
+    class TypeCastHelperHelper dummy type1 type2 | dummy type1 -> type2, dummy type2 -> type1 where
+
+        typeCastHelperHelper :: dummy -> type1 -> type2
+
+    instance TypeCastHelperHelper () soleType soleType where
+
+        typeCastHelperHelper () value = value
diff --git a/type-equality-check.cabal b/type-equality-check.cabal
new file mode 100644
--- /dev/null
+++ b/type-equality-check.cabal
@@ -0,0 +1,36 @@
+Name:          type-equality-check
+Version:       0.0.0.0
+Cabal-Version: >= 1.2 && < 1.8
+Build-Type:    Simple
+License:       BSD3
+License-File:  LICENSE
+Copyright:     © 2004       Oleg Kiselyov
+                            (Fleet Numerical Meteorology and Oceanography Center);
+               © 2004       Ralf Lämmel
+                            (Centrum Wiskunde & Informatica, Vrije Universiteit Amsterdam);
+               © 2004       Keean Schupke
+                            (Imperial College London);
+               © 2008, 2009 Brandenburgische Technische Universität Cottbus
+Author:        Wolfgang Jeltsch
+Maintainer:    jeltsch@informatik.tu-cottbus.de
+Stability:     provisional
+Homepage:      http://softbase.org/type-equality-check/
+Package-URL:   http://hackage.haskell.org/packages/archive/type-equality-check/0.0.0.0/type-equality-check-0.0.0.0.tar.gz
+Synopsis:      Type equality check
+Description:   This packages provides a type equality check whose implementation is basically the
+               one from the HList library.
+Category:      Data
+Tested-With:   GHC == 6.8.3
+               GHC == 6.10.1
+
+Library
+    Build-Depends:   base       >= 3.0 && < 4.1,
+                     type-level >= 0.1 && < 0.3
+    Extensions:      FlexibleContexts
+                     FlexibleInstances
+                     FunctionalDependencies
+                     MultiParamTypeClasses
+                     OverlappingInstances
+                     UndecidableInstances
+    Exposed-Modules: Data.TypeEq
+    HS-Source-Dirs:  src
