diff options
author | David Feuer <david.feuer@gmail.com> | 2017-02-07 00:16:55 -0500 |
---|---|---|
committer | David Feuer <David.Feuer@gmail.com> | 2017-02-07 00:16:56 -0500 |
commit | 2219c8cd612ec7920a3bd1661b3c663575737267 (patch) | |
tree | 43c944b3fd09c9719a27f871abba1a6ece01e16b /testsuite/tests/generics | |
parent | a28a55211d6fb8d3182b0a9e47656ff9ca8a3766 (diff) | |
download | haskell-2219c8cd612ec7920a3bd1661b3c663575737267.tar.gz |
Derive <$
Using the default definition of `<$` for derived `Functor`
instance is very bad for recursive data types. Derive
the definition instead.
Fixes #13218
Reviewers: austin, bgamari, RyanGlScott
Reviewed By: RyanGlScott
Subscribers: RyanGlScott, thomie
Differential Revision: https://phabricator.haskell.org/D3072
Diffstat (limited to 'testsuite/tests/generics')
-rw-r--r-- | testsuite/tests/generics/GenDerivOutput.stderr | 9 | ||||
-rw-r--r-- | testsuite/tests/generics/T10604/T10604_deriving.stderr | 7 |
2 files changed, 4 insertions, 12 deletions
diff --git a/testsuite/tests/generics/GenDerivOutput.stderr b/testsuite/tests/generics/GenDerivOutput.stderr index 3e1f175178..d531e914f4 100644 --- a/testsuite/tests/generics/GenDerivOutput.stderr +++ b/testsuite/tests/generics/GenDerivOutput.stderr @@ -46,6 +46,9 @@ Derived class instances: GHC.Base.fmap f GenDerivOutput.Nil = GenDerivOutput.Nil GHC.Base.fmap f (GenDerivOutput.Cons a1 a2) = GenDerivOutput.Cons (f a1) (GHC.Base.fmap f a2) + (GHC.Base.<$) z GenDerivOutput.Nil = GenDerivOutput.Nil + (GHC.Base.<$) z (GenDerivOutput.Cons a1 a2) + = GenDerivOutput.Cons ((\ b1 -> z) a1) ((GHC.Base.<$) z a2) instance GHC.Generics.Generic (GenDerivOutput.Rose a) where GHC.Generics.from x @@ -224,9 +227,3 @@ Derived type family instances: GenDerivOutput.Rose))) - -==================== Filling in method body ==================== -GHC.Base.Functor [GenDerivOutput.List] - GHC.Base.<$ = GHC.Base.$dm<$ @GenDerivOutput.List - - diff --git a/testsuite/tests/generics/T10604/T10604_deriving.stderr b/testsuite/tests/generics/T10604/T10604_deriving.stderr index 6898af06a8..6862ff5adc 100644 --- a/testsuite/tests/generics/T10604/T10604_deriving.stderr +++ b/testsuite/tests/generics/T10604/T10604_deriving.stderr @@ -24,6 +24,7 @@ Derived class instances: instance GHC.Base.Functor (T10604_deriving.Proxy *) where GHC.Base.fmap f T10604_deriving.Proxy = T10604_deriving.Proxy + (GHC.Base.<$) z T10604_deriving.Proxy = T10604_deriving.Proxy instance forall k (a :: k). GHC.Generics.Generic (T10604_deriving.Proxy k a) where @@ -541,9 +542,3 @@ Derived type family instances: * GHC.Types.Int)))) - -==================== Filling in method body ==================== -GHC.Base.Functor [T10604_deriving.Proxy *] - GHC.Base.<$ = GHC.Base.$dm<$ @T10604_deriving.Proxy * - - |