25 lines
481 B
Haskell
25 lines
481 B
Haskell
|
{-# OPTIONS -cpp #-}
|
||
|
|
||
|
module API where
|
||
|
|
||
|
import AltData
|
||
|
|
||
|
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 = (==) }
|
||
|
|