From 2b562080a4f516e5fb760fb5415d73a1ce9c6a05 Mon Sep 17 00:00:00 2001 From: doyougnu Date: Thu, 6 Jun 2024 11:50:07 -0400 Subject: [PATCH 1/5] message index: implement GHC-16437 --- .../GHC-16437/deriving_gadt/after/Deriving_gadt.hs | 9 +++++++++ .../GHC-16437/deriving_gadt/before/Deriving_gadt.hs | 5 +++++ .../messages/GHC-16437/deriving_gadt/index.md | 3 +++ .../GHC-16437/higher_rank/after/Higher_rank.hs | 5 +++++ .../GHC-16437/higher_rank/before/Higher_rank.hs | 5 +++++ message-index/messages/GHC-16437/higher_rank/index.md | 3 +++ message-index/messages/GHC-16437/index.md | 11 +++++++++++ 7 files changed, 41 insertions(+) create mode 100644 message-index/messages/GHC-16437/deriving_gadt/after/Deriving_gadt.hs create mode 100644 message-index/messages/GHC-16437/deriving_gadt/before/Deriving_gadt.hs create mode 100644 message-index/messages/GHC-16437/deriving_gadt/index.md create mode 100644 message-index/messages/GHC-16437/higher_rank/after/Higher_rank.hs create mode 100644 message-index/messages/GHC-16437/higher_rank/before/Higher_rank.hs create mode 100644 message-index/messages/GHC-16437/higher_rank/index.md create mode 100644 message-index/messages/GHC-16437/index.md diff --git a/message-index/messages/GHC-16437/deriving_gadt/after/Deriving_gadt.hs b/message-index/messages/GHC-16437/deriving_gadt/after/Deriving_gadt.hs new file mode 100644 index 00000000..08095b52 --- /dev/null +++ b/message-index/messages/GHC-16437/deriving_gadt/after/Deriving_gadt.hs @@ -0,0 +1,9 @@ +{-# LANGUAGE GADTs #-} +{-# LANGUAGE StandaloneDeriving #-} + +module Deriving_gadt where + +data T a b where + Mk :: Int -> b -> T Int b + +deriving instance Functor (T a) diff --git a/message-index/messages/GHC-16437/deriving_gadt/before/Deriving_gadt.hs b/message-index/messages/GHC-16437/deriving_gadt/before/Deriving_gadt.hs new file mode 100644 index 00000000..9498d993 --- /dev/null +++ b/message-index/messages/GHC-16437/deriving_gadt/before/Deriving_gadt.hs @@ -0,0 +1,5 @@ +module Deriving_gadt where + +data T a b where + Mk :: Int -> b -> T Int b + deriving (Functor) diff --git a/message-index/messages/GHC-16437/deriving_gadt/index.md b/message-index/messages/GHC-16437/deriving_gadt/index.md new file mode 100644 index 00000000..e5613854 --- /dev/null +++ b/message-index/messages/GHC-16437/deriving_gadt/index.md @@ -0,0 +1,3 @@ +--- +title: Attempt at using deriving clause with GADT. +--- diff --git a/message-index/messages/GHC-16437/higher_rank/after/Higher_rank.hs b/message-index/messages/GHC-16437/higher_rank/after/Higher_rank.hs new file mode 100644 index 00000000..bc28a09c --- /dev/null +++ b/message-index/messages/GHC-16437/higher_rank/after/Higher_rank.hs @@ -0,0 +1,5 @@ + +module Higher_rank where + +-- unfortunately we just need a rank 1 type +data Bad = MkBad a deriving Eq diff --git a/message-index/messages/GHC-16437/higher_rank/before/Higher_rank.hs b/message-index/messages/GHC-16437/higher_rank/before/Higher_rank.hs new file mode 100644 index 00000000..6d3947bd --- /dev/null +++ b/message-index/messages/GHC-16437/higher_rank/before/Higher_rank.hs @@ -0,0 +1,5 @@ +{-# LANGUAGE RankNTypes #-} + +module Higher_rank where + +data Bad = MkBad (forall a. a) deriving Eq diff --git a/message-index/messages/GHC-16437/higher_rank/index.md b/message-index/messages/GHC-16437/higher_rank/index.md new file mode 100644 index 00000000..2f78ca63 --- /dev/null +++ b/message-index/messages/GHC-16437/higher_rank/index.md @@ -0,0 +1,3 @@ +--- +title: Use of higher-rank types with a derving clause. +--- diff --git a/message-index/messages/GHC-16437/index.md b/message-index/messages/GHC-16437/index.md new file mode 100644 index 00000000..5dcb7b87 --- /dev/null +++ b/message-index/messages/GHC-16437/index.md @@ -0,0 +1,11 @@ +--- +title: Bad Constructor used with deriving clause +summary: The deriving mechanism expects constructors of a particular form. When the constructors do not comport to this form, this error is thrown. +severity: error +introduced: 9.6.1 +--- + + • Can't make a derived instance of ‘Functor (T a)’: + Constructor ‘Mk’ is a GADT + • In the data declaration for ‘T’ + Suggested fix: Use a standalone deriving declaration instead From d57b35d9fec378a82f2ca04670b1279d3df17566 Mon Sep 17 00:00:00 2001 From: Jeffrey Young Date: Sun, 16 Feb 2025 08:31:48 -0500 Subject: [PATCH 2/5] Update index.md Move longer summary into the body, shorter summary --- message-index/messages/GHC-16437/index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/message-index/messages/GHC-16437/index.md b/message-index/messages/GHC-16437/index.md index 5dcb7b87..d66cbaa0 100644 --- a/message-index/messages/GHC-16437/index.md +++ b/message-index/messages/GHC-16437/index.md @@ -1,10 +1,12 @@ --- title: Bad Constructor used with deriving clause -summary: The deriving mechanism expects constructors of a particular form. When the constructors do not comport to this form, this error is thrown. +summary: Standard deriving fails on GADTs and higher-rank types severity: error introduced: 9.6.1 --- +The deriving mechanism expects constructors of a particular form. When the constructors do not comport to this form, this error is thrown: + • Can't make a derived instance of ‘Functor (T a)’: Constructor ‘Mk’ is a GADT • In the data declaration for ‘T’ From 627a467ddaced56e7f48b35ce4bffcf24589ff31 Mon Sep 17 00:00:00 2001 From: Jeffrey Young Date: Sun, 16 Feb 2025 16:31:29 -0500 Subject: [PATCH 3/5] Update message-index/messages/GHC-16437/higher_rank/index.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: ˌbodʲɪˈɡrʲim --- message-index/messages/GHC-16437/higher_rank/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/message-index/messages/GHC-16437/higher_rank/index.md b/message-index/messages/GHC-16437/higher_rank/index.md index 2f78ca63..ca9fbedd 100644 --- a/message-index/messages/GHC-16437/higher_rank/index.md +++ b/message-index/messages/GHC-16437/higher_rank/index.md @@ -1,3 +1,3 @@ --- -title: Use of higher-rank types with a derving clause. +title: Use of higher-rank types with a deriving clause. --- From f0e5f549a40429642871d356aa01d699dc591fb9 Mon Sep 17 00:00:00 2001 From: Jeffrey Young Date: Sun, 16 Feb 2025 16:34:47 -0500 Subject: [PATCH 4/5] Update message-index/messages/GHC-16437/higher_rank/after/Higher_rank.hs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: ˌbodʲɪˈɡrʲim --- .../messages/GHC-16437/higher_rank/after/Higher_rank.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/message-index/messages/GHC-16437/higher_rank/after/Higher_rank.hs b/message-index/messages/GHC-16437/higher_rank/after/Higher_rank.hs index bc28a09c..dfddbbe9 100644 --- a/message-index/messages/GHC-16437/higher_rank/after/Higher_rank.hs +++ b/message-index/messages/GHC-16437/higher_rank/after/Higher_rank.hs @@ -2,4 +2,4 @@ module Higher_rank where -- unfortunately we just need a rank 1 type -data Bad = MkBad a deriving Eq +data Bad a = MkBad a deriving Eq From 38ba738168f224af7c677ba24e78355423d50714 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CB=8Cbod=CA=B2=C9=AA=CB=88=C9=A1r=CA=B2im?= Date: Sun, 16 Feb 2025 23:03:59 +0000 Subject: [PATCH 5/5] Update message-index/messages/GHC-16437/higher_rank/after/Higher_rank.hs --- .../messages/GHC-16437/higher_rank/after/Higher_rank.hs | 1 - 1 file changed, 1 deletion(-) diff --git a/message-index/messages/GHC-16437/higher_rank/after/Higher_rank.hs b/message-index/messages/GHC-16437/higher_rank/after/Higher_rank.hs index dfddbbe9..e0df23c7 100644 --- a/message-index/messages/GHC-16437/higher_rank/after/Higher_rank.hs +++ b/message-index/messages/GHC-16437/higher_rank/after/Higher_rank.hs @@ -1,4 +1,3 @@ - module Higher_rank where -- unfortunately we just need a rank 1 type