
#9557: Deriving instances is slow -------------------------------------+------------------------------------- Reporter: Feuerbach | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.3 Resolution: | Keywords: Operating System: | Architecture: Unknown/Multiple Unknown/Multiple | Difficulty: Unknown Type of failure: | Blocked By: None/Unknown | Related Tickets: #8731 Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by rwbarton): I performed the following list of modifications to the program and recorded the size in terms after desugaring after each step: ||=step=||=program size (terms)=|| ||original|| 126396|| ||remove everything but data decls|| 122877|| ||remove deriving Generic|| 106339|| ||remove deriving Data|| 78544|| ||remove deriving Traversable|| 70886|| ||remove deriving Foldable|| 59332|| ||remove deriving Functor|| 55041|| ||remove deriving Show|| 42848|| ||remove deriving Ord|| 11044|| ||remove deriving Eq|| 2244|| ||remove deriving Typeable|| 1140|| So, the cost of each class is ||=class=||=terms=|| ||Ord|| 31804|| ||Data|| 27795|| ||Generic|| 16538|| ||Show|| 12193|| ||Foldable|| 11554|| ||Eq|| 8800|| ||Traversable|| 7658|| ||Functor|| 4291|| ||Typeable|| 1104|| So no individual class is adding a particularly egregious amount of code. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9557#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler