diff options
author | Baldur Blöndal <baldurpet@gmail.com> | 2021-05-11 22:07:38 +0100 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2021-08-02 04:12:04 -0400 |
commit | a4ca6caaa2f61d1ef62db824dd2116b753cf24ee (patch) | |
tree | d71fbe273b5e7297a04e91b2d3bdac4d11555f7b /testsuite/tests | |
parent | b4d39adbb5884c764c6c11b2614a340c78cc078e (diff) | |
download | haskell-a4ca6caaa2f61d1ef62db824dd2116b753cf24ee.tar.gz |
Add Generically (generic Semigroup, Monoid instances) and Generically1 (generic Functor, Applicative, Alternative, Eq1, Ord1 instances) to GHC.Generics.
Diffstat (limited to 'testsuite/tests')
-rw-r--r-- | testsuite/tests/generics/T19819.hs | 17 | ||||
-rw-r--r-- | testsuite/tests/generics/T19819.stdout | 2 | ||||
-rw-r--r-- | testsuite/tests/generics/all.T | 1 | ||||
-rw-r--r-- | testsuite/tests/ghci/scripts/T12550.stdout | 4 |
4 files changed, 24 insertions, 0 deletions
diff --git a/testsuite/tests/generics/T19819.hs b/testsuite/tests/generics/T19819.hs new file mode 100644 index 0000000000..f624008640 --- /dev/null +++ b/testsuite/tests/generics/T19819.hs @@ -0,0 +1,17 @@ +{-# Language DeriveGeneric #-} +{-# Language DerivingStrategies #-} +{-# Language DerivingVia #-} + +import GHC.Generics (Generic, Generically(..)) + +data T = T [Int] [Int] [Int] [Int] [Int] [Int] + deriving + stock (Show, Generic) + + deriving (Semigroup, Monoid) + via Generically T + +main :: IO () +main = do + print (mempty :: T) + print (T [1,2] [3] [] [4,5,6] [7] [8] <> T [10,20] [30] [] [40,50,60] [70] [80]) diff --git a/testsuite/tests/generics/T19819.stdout b/testsuite/tests/generics/T19819.stdout new file mode 100644 index 0000000000..31a6d4b087 --- /dev/null +++ b/testsuite/tests/generics/T19819.stdout @@ -0,0 +1,2 @@ +T [] [] [] [] [] [] +T [1,2,10,20] [3,30] [] [4,5,6,40,50,60] [7,70] [8,80]
\ No newline at end of file diff --git a/testsuite/tests/generics/all.T b/testsuite/tests/generics/all.T index 4887d491cb..1fccfffc16 100644 --- a/testsuite/tests/generics/all.T +++ b/testsuite/tests/generics/all.T @@ -44,3 +44,4 @@ test('T10361b', normal, compile, ['']) test('T11358', normal, compile_and_run, ['']) test('T12220', normal, compile, ['']) test('T15012', [extra_files(['T15012.hs', 'T15012a.hs'])], makefile_test, []) +test('T19819', normal, compile_and_run, ['']) diff --git a/testsuite/tests/ghci/scripts/T12550.stdout b/testsuite/tests/ghci/scripts/T12550.stdout index 05baf3e900..a0449406f1 100644 --- a/testsuite/tests/ghci/scripts/T12550.stdout +++ b/testsuite/tests/ghci/scripts/T12550.stdout @@ -36,6 +36,10 @@ instance Functor Par1 -- Defined in ‘GHC.Generics’ instance ∀ i (c ∷ Meta) (f ∷ ★ → ★). Functor f ⇒ Functor (M1 i c f) -- Defined in ‘GHC.Generics’ instance ∀ i c. Functor (K1 i c) -- Defined in ‘GHC.Generics’ +instance ∀ (f ∷ ★ → ★). + (Generic1 f, Functor (Rep1 f)) ⇒ + Functor (Generically1 f) + -- Defined in ‘GHC.Generics’ instance ∀ (f ∷ ★ → ★) (g ∷ ★ → ★). (Functor f, Functor g) ⇒ Functor (f :.: g) |