I don’t know, but my instinct is to stick to the monomorphic version for now, it that’s all you need.
Simon
From: ghc-devs [mailto:ghc-devs-bounces@haskell.org]
On Behalf Of Alan & Kim Zimmerman
Sent: 20 October 2017 18:33
To: ghc-devs@haskell.org
Subject: haddock specializeInstHead
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