[Haskell-cafe] Re: Proposal: register a package
asprovidingseveralAPI versions
Simon Marlow
simonmarhaskell at gmail.com
Wed Oct 17 11:45:52 EDT 2007
Claus Reinke wrote:
> a few examples, of the top of my head:
> - consider the base split in reverse: if functionality is only repackaged,
> the merged base would also provide for the previously separate
> sub-package apis (that suggests a separate 'provides:' field,
> though, as merely listing version numbers wouldn't be sufficient)
> - consider the base split itself: if there was a way for the base split
> authors to tell cabal that the collection of smaller packages can
> provide for clients of the the old big base, those clients would
> not run into trouble when the old big base is removed
These two cases could be solved by re-exports, no extra mechanism is required.
> - consider adding a new monad transformer to a monad transformer
> library, or a new regex variant to a regex library - surely the new
> package version can still provide for clients of the old version
This case doesn't work - if you add *anything* to a library, I can write a
module that can tell the difference. So whether your new version is
compatible in practice depends on the client.
> - consider various packages providing different implementations
> of an api, say edison's - surely any of the implementations will
> do for clients who depend only on the api, not on specifics
Yes, and in this case we should have another package that just re-exports
one of the underlying packages.
You seem to want to add another layer of granularity in addition to
packages, and I think that would be unnecessary complexity.
Cheers,
Simon
More information about the Haskell-Cafe
mailing list