template-haskell depends on packedstring

Duncan Coutts duncan.coutts at worc.ox.ac.uk
Sun Nov 30 19:04:04 EST 2008


On Sun, 2008-11-30 at 18:37 -0500, Gwern Branwen wrote:

> > Ah, I see. I'd not looked that closely. It's this bit you're referring
> > to:
> >
> > type OccName = PackedString
> > mkOccName :: String -> OccName
> > occString :: OccName -> String
> >
> > type ModName = PackedString
> > mkModName :: String -> ModName
> > modString :: ModName -> String
> >
> > type PkgName = PackedString
> > mkPkgName :: String -> PkgName
> > pkgString :: PkgName -> String
> >
> > Technically that's not an abstract api so changing the type alias could
> > break programs, though I agree that it may be unlikely.
> 
> I would argue that it's less unlikely than richly deserved. :) (I find
> it difficult to imagine why a TH hacker would deliberately tunnel
> through the alias, personally.)
> 
> >> Unless there's some sort of low-level binary API compatibility you are
> >> referring to?
> >
> > No, just the source level API.

> OK. Is the previous issue a fatal objection or can we just make the
> change and upload a new TH?

How about making a library proposal to change them to abstract newtypes,
then we can change the internal representation at will.

I would not object to that, but then I'm not a TH hacker and they
deserve the chance to comment.

Duncan



More information about the Libraries mailing list