On Mon, 2008-10-13 at 21:31 +0100, Max Bolingbroke wrote:
> 2008/10/13 Duncan Coutts <[EMAIL PROTECTED]>:

> > This is an excellent opportunity to implement private build
> > dependencies. That is if the ghc api package is not exporting the
> > ByteString or Binary types then it really does not matter which version
> > of the bytestring and binary packages it uses.
> 
> Simon M mentioned this. However, the unique problem with Binary is
> that ghc will exports an API that mentions the Binary class:
> 
> """
> -- For normal GHC API users:
> getAnnotations :: (Typeable a, Binary a) => Name -> GHCM [a]
> 
> -- Only for plugins adding their own annotations:
> getAnnotations :: (Typeable a, Binary a) => Name -> CoreM [a]
> putAnnotations :: (Typeable a, Binary a) => Name -> a -> CoreM ()
> """

Ok, but it needn't, eg:

type Serialise   a = a -> ByteString
type Deserialise a = ByteString -> a

-- For normal GHC API users:
getAnnotations :: Typeable a => Deserialise a -> Name -> GHCM [a]

-- Only for plugins adding their own annotations:
getAnnotations :: Typeable a => Deserialise a -> Name -> CoreM [a]
putAnnotations :: Typeable a => Serialise   a -> Name -> a -> CoreM ()


Duncan

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to