type-equality-check (empty) → 0.0.0.0
raw patch · 4 files changed
+113/−0 lines, 4 filesdep +basedep +type-levelsetup-changed
Dependencies added: base, type-level
Files
- LICENSE +28/−0
- Setup.lhs +4/−0
- src/Data/TypeEq.hs +45/−0
- type-equality-check.cabal +36/−0
+ LICENSE view
@@ -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.
+ Setup.lhs view
@@ -0,0 +1,4 @@+#!/usr/bin/env runghc++> import Distribution.Simple+> main = defaultMain
+ src/Data/TypeEq.hs view
@@ -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
+ type-equality-check.cabal view
@@ -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