Cabal is a layer on Haskell

Simon Marlow simonmar at
Tue Apr 26 07:30:49 EDT 2005

On 26 April 2005 04:55, S. Alexander Jacobson wrote:

> On Mon, 25 Apr 2005, John Meacham wrote:
>> You can compare Cabal's way of doing things to what specific
>> compilers have done, but not 'Haskell' because 'Haskell' doesn't
>> concern itself with these issues.

This is correct.

> Yeah Simon Marlow corrected me on this one too.

No I didn't :-p

> Cabal should be thought of Cabal is part of the Haskell source not its
> implementation:
>    Me: My fundamental point here is that the meaning of code shouldn't
>    change depending on the location where it is interpreted. [...]
>    Concretely, the meaning of "import Data.List" in a
>    haskell module shouldn't depend on whether the module is on my
>    computer or yours.
>    Simon: You can think of .cabal as part of the source if that helps.
>    It really is part of the source - but implemented and specified as
>    a layer on top of existing language and compiler technology, for
>    convenience and so that we can share the tools.

You misinterpreted me.  I'm simply saying that .cabal is part of the
source of a Cabal package, not part of the Haskell source.  Of course,
since Cabal doesn't change the definition of Haskell.

I'll state this clearly (again):

  Cabal is a layer on top of the Haskell language definition.
  It does not change Haskell, it is not "incompatible" with Haskell.
  It defines some things that are undefined in the Haskell definition.


More information about the Libraries mailing list