2005-05-15 06:03:55 +00:00

25 lines
490 B
Haskell

{-# OPTIONS -cpp #-}
module API where
import AltData.Typeable
data Interface = Interface {
equals :: forall t. Eq t => t -> t -> Bool
}
--
-- see how it hides the internal type.. but to compile GHC still checks
-- the type.
--
instance Typeable Interface where
#if __GLASGOW_HASKELL__ >= 603
typeOf i = mkTyConApp (mkTyCon "API.Interface") []
#else
typeOf i = mkAppTy (mkTyCon "API.Interface") []
#endif
plugin :: Interface
plugin = Interface { equals = (==) }