• Georgi Lyubenov's avatar
    Export liftA2 from Prelude · 77209ab3
    Georgi Lyubenov authored
    In order to be warning free and compatible, we hide Applicative(..)
    from Prelude in a few places and instead import it directly from
    Please see the migration guide at
    for more details.
    This means that Applicative is now exported in its entirety from
    This change is motivated by a few things:
    * liftA2 is an often used function, even more so than (<*>) for some
    * When implementing Applicative, the compiler will prompt you for either
      an implementation of (<*>) or of liftA2, but trying to use the latter
      ends with an error, without further imports. This could be confusing
      for newbies.
    * For teaching, it is often times easier to introduce liftA2 first,
      as it is a natural generalisation of fmap.
    * This change seems to have been unanimously and enthusiastically
      accepted by the CLC members, possibly indicating a lot of love for it.
    * This change causes very limited breakage, see the linked issue below
      for an investigation on this.
    See https://github.com/haskell/core-libraries-committee/issues/50
    for the surrounding discussion and more details.