
I am working the next stage of Trees that Grow into GHC [1], and need to update Haddock. The `Specialize` module[2] exports a single function, `specializeInstHead` which is called once, specialised to `GhcRn`. So all it needs to be for haddock use is specializeInstHead :: InstHead GhcRn -> InstHead GhcRn But the entire module is polymorphic in the AST parameter, so it has the following instead specializeInstHead :: (Ord (IdP name), DataId name, SetName (IdP name), NamedThing (IdP name)) => InstHead name -> InstHead name Question: does it need to be so polymorphic? I am hitting issues getting the type parameter change worked through, and it seems a bit pointless to slog on with it if it is unnecessary. Alan [1] https://github.com/ghc/ghc/tree/wip/ttg-2017-10-13 [2] https://github.com/haskell/haddock/blob/a5bdb46185b7c0b3fced9a7fac9a62883d9d...