{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}

{- |
   The HList library

   (C) 2004, Oleg Kiselyov, Ralf Laemmel, Keean Schupke

   A generic implementation of type cast. For this implementation to
   work, we need to import it at a higher level in the module hierarchy
   than all clients of the class. Otherwise, type simplification will
   inline TypeCast x y, which implies compile-time unification of x and y.

   This technique works fine for ghc, and within limits for hugs.

module Data.HList.TypeCastGeneric1 where

import Data.HList.FakePrelude

instance TypeCast x x
  typeCast = id