{-# LANGUAGE GADTs          #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE TypeOperators  #-}

-----------------------------------------------------------------------------
-- |
-- Module      :  Generics.MultiRec.TEq
-- Copyright   :  (c) 2008--2010 Universiteit Utrecht
-- License     :  BSD3
--
-- Maintainer  :  generics@haskell.org
-- Stability   :  experimental
-- Portability :  non-portable
--
-- Type-level equality. This module is currently provided by the multirec
-- library, even though it is more general and does not really belong here.
-- 
-----------------------------------------------------------------------------
module Generics.MultiRec.TEq where

infix 4 :=:

data (:=:) :: * -> * -> * where
  Refl :: a :=: a

cast :: a :=: b -> a -> b
cast Refl x = x