--- /dev/null
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface HsTypes where
+import Name(Name)
+import Outputable(Outputable)
+import Pretty(PprStyle, PrettyRep)
+import ProtoName(ProtoName)
+type ClassAssertion a = (a, a)
+type Context a = [(a, a)]
+data MonoType a = MonoTyVar a | MonoTyCon a [MonoType a] | FunMonoTy (MonoType a) (MonoType a) | ListMonoTy (MonoType a) | TupleMonoTy [PolyType a] | MonoTyVarTemplate a | MonoDict a (MonoType a)
+data PolyType a = UnoverloadedTy (MonoType a) | OverloadedTy [(a, a)] (MonoType a) | ForAllTy [a] (MonoType a)
+type ProtoNameContext = [(ProtoName, ProtoName)]
+type ProtoNameMonoType = MonoType ProtoName
+type ProtoNamePolyType = PolyType ProtoName
+type RenamedContext = [(Name, Name)]
+type RenamedMonoType = MonoType Name
+type RenamedPolyType = PolyType Name
+cmpList :: (a -> a -> Int#) -> [a] -> [a] -> Int#
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSS" _N_ _N_ #-}
+cmpMonoType :: (a -> a -> Int#) -> MonoType a -> MonoType a -> Int#
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LSS" _N_ _N_ #-}
+cmpPolyType :: (a -> a -> Int#) -> PolyType a -> PolyType a -> Int#
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LSS" _N_ _N_ #-}
+eqMonoType :: MonoType ProtoName -> MonoType ProtoName -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+pprContext :: Outputable a => PprStyle -> [(a, a)] -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 3 _U_ 22122 _N_ _S_ "LLS" _N_ _N_ #-}
+pprParendMonoType :: Outputable a => PprStyle -> MonoType a -> Int -> Bool -> PrettyRep
+ {-# GHC_PRAGMA _A_ 1 _U_ 22122 _N_ _N_ _N_ _N_ #-}
+instance Outputable a => Outputable (MonoType a)
+ {-# GHC_PRAGMA _M_ HsTypes {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+instance Outputable a => Outputable (PolyType a)
+ {-# GHC_PRAGMA _M_ HsTypes {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+