[Haskell] Eternal Compatibility In Theory
duncan.coutts at worc.ox.ac.uk
Mon May 2 16:10:37 EDT 2005
On Mon, 2005-05-02 at 15:57 -0400, robert dockins wrote:
> >>Is there a way to reliably and automatically check if two versions of
> >>a haskell module are interface compatible?
> > No, because it would have to check whether the semantics of functions
> > is the same, even if they are written differently.
> Of course, we cannot expect the computer to examine the semantics. We
> must rely on people to know when semantics change.
> Suppose I want to ask the easier question "do these two text files
> implement haskell modules which are _type_ compatable?", how would I do
> it? Ie, I want the test to fail if I change the type of some function
> foo, or if I add a method to a class declaration etc.
You can extract this information from ghc's .hi files. You'd need to
filter and munge the info a bit but take a look at the output from
$ ghc --show-iface Blah.hi
It would be useful to have a tool that emits the 'signature' of a module
so you can compare between versions for API changes.
More information about the Haskell