Haskell 2010: libraries

David Menendez dave at zednenem.com
Thu Jul 16 11:18:02 EDT 2009

On Thu, Jul 16, 2009 at 4:36 AM, Simon Marlow<marlowsd at gmail.com> wrote:
> On 15/07/2009 18:10, David Menendez wrote:
>> On Wed, Jul 15, 2009 at 11:33 AM, Simon Marlow<marlowsd at gmail.com>  wrote:
>>> On 15/07/2009 15:54, Ian Lynagh wrote:
>>>> On Wed, Jul 15, 2009 at 03:39:55PM +0100, Simon Marlow wrote:
>>>>> But there's a solution: we could remove the "standard" modules from
>>>>> base, and have them only provided by haskell-std (since base will just
>>>>> be a re-exporting layer on top of base-internals, this will be easy to
>>>>> do).  Most packages will then have dependencies that look like
>>>>>   build-depends: base-4.*, haskell-std-2010
>>>> We'll probably end up with situations where one dependency of a package
>>>> needs haskell-std-2010, and another needs haskell-std-2011. I don't know
>>>> which impls support that at the moment.
>>> That's the case with base-3/base-4 at the moment.  Is it a problem?
>> Could I use two packages of arrow code which depend on base 3.0.2 and
>> base 3.0.3, respectively, in the same project?
> No.  (though I'm not sure the significance of "arrow code" here).  Is there
> a package that depends on base-3.0.2, and doesn't work with base-3.0.3?

Any package that defines an Arrow instance can't work with both 3.0.2
and 3.0.3, because they provide incompatible class definitions.
(That's where Category was introduced.)

It broke at least one package at the time, although I think it's been
fixed by now.

In <http://www.haskell.org/pipermail/glasgow-haskell-users/2008-October/015774.html>,
you argued:

> We simply *can't* provide the same API as base-3.0.2 without defining
> a new Arrow class, and that would kill compatibility with base-4.  On the
> other hand, we did know this could happen (changes to datatypes also
> cause the same problem), it's the tradeoff with trying to provide base-3
> as a compatibility layer over base-4.

Which is probably the right call for obscure classes like Arrow, but
not more common ones like Num or Monad.

Dave Menendez <dave at zednenem.com>

Dave Menendez <dave at zednenem.com>

More information about the Haskell-prime mailing list