[GHC] #9069: -XDeriveTraversable should imply -XDeriveFunctor and -XDeriveFoldable

GHC ghc-devs at haskell.org
Mon May 5 11:15:48 UTC 2014


#9069: -XDeriveTraversable should imply -XDeriveFunctor and -XDeriveFoldable
-------------------------------------+------------------------------------
        Reporter:  sjoerd_visscher   |            Owner:
            Type:  feature request   |           Status:  patch
        Priority:  normal            |        Milestone:
       Component:  Compiler          |          Version:  7.8.2
      Resolution:                    |         Keywords:
Operating System:  Unknown/Multiple  |     Architecture:  Unknown/Multiple
 Type of failure:  None/Unknown      |       Difficulty:  Unknown
       Test Case:                    |       Blocked By:
        Blocking:                    |  Related Tickets:
-------------------------------------+------------------------------------

Comment (by sjoerd_visscher):

 Right, thanks, I will do that!

 The main reason is that currently you have to quite a bit to just get a
 derived `Traversable` instance:
  1. You have to add `deriving (Functor, Foldable, Traversable)`
  2. You have to import `Data.Foldable` and `Data.Traversable`
  3. You have to turn on 3 extensions.

 Item 1 is fine, we don't want any magic. Item 2 could be solved by moving
 `Foldable` and `Traversable` to the prelude. So the only thing that I can
 do right now is improve item 3.

 If you derive the `Traversable` instance it would be invalid to have an
 instance for `Functor` or `Foldable` that is not equiavalent to the
 derived instances, so it makes sense to turn those extensions on
 automatically.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9069#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list