From ba379287c80e502e47664597370cef4b5593e417 Mon Sep 17 00:00:00 2001 From: akhesaCaro Date: Tue, 23 Mar 2021 14:09:49 +0100 Subject: [PATCH 1/4] reverting : removing DerivingVia extension (not compatible ghc < 8.6.1) --- doc/cookbook/uverb/UVerb.lhs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/doc/cookbook/uverb/UVerb.lhs b/doc/cookbook/uverb/UVerb.lhs index 2119706c..93147b68 100644 --- a/doc/cookbook/uverb/UVerb.lhs +++ b/doc/cookbook/uverb/UVerb.lhs @@ -10,6 +10,8 @@ handlers that respond with arbitrary open unions of types. {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} +{-# LANGUAGE DerivingStrategies #-} +{-# LANGUAGE DerivingVia #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} @@ -154,12 +156,8 @@ Example usage: ```haskell data Foo = Foo Int Int Int - deriving (Show, Eq, GHC.Generic) - -instance ToJSON Foo - -instance HasStatus Foo where - type StatusOf Foo = 200 + deriving (Show, Eq, GHC.Generic, ToJSON) + deriving HasStatus via WithStatus 200 Foo data Bar = Bar deriving (Show, Eq, GHC.Generic) From d4f7b0397dae2466d1c6d4aeb4579c770dd61bd8 Mon Sep 17 00:00:00 2001 From: akhesaCaro Date: Tue, 23 Mar 2021 14:10:14 +0100 Subject: [PATCH 2/4] adding a compatibility warning in the cookbook --- doc/cookbook/uverb/UVerb.lhs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/cookbook/uverb/UVerb.lhs b/doc/cookbook/uverb/UVerb.lhs index 93147b68..52566ca2 100644 --- a/doc/cookbook/uverb/UVerb.lhs +++ b/doc/cookbook/uverb/UVerb.lhs @@ -4,6 +4,10 @@ Servant allows you to talk about the exceptions you throw in your API types. This is not limited to actual exceptions, you can write handlers that respond with arbitrary open unions of types. +## Compatibility + +:warning: This cookbook is compatible with GHC 8.6.1 or higher :warning: + ## Preliminaries ```haskell From 81a73dfcdac23066d457c93fbfb0c788e2b7a344 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20Deest?= Date: Fri, 9 Apr 2021 15:56:59 +0200 Subject: [PATCH 3/4] Try excluding uverb cookbook from pre 8.6.1 builds --- doc/cookbook/uverb/uverb.cabal | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/cookbook/uverb/uverb.cabal b/doc/cookbook/uverb/uverb.cabal index 8b6b0b45..6c984070 100644 --- a/doc/cookbook/uverb/uverb.cabal +++ b/doc/cookbook/uverb/uverb.cabal @@ -28,6 +28,8 @@ executable cookbook-uverb , swagger2 , wai , warp - default-language: Haskell2010 + if impl(ghc < 8.6.1) + buildable: False + default-language: Haskell2010 ghc-options: -Wall -pgmL markdown-unlit build-tool-depends: markdown-unlit:markdown-unlit From f30b72cc902d17d8c6e17799d204f71e18bc8505 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20Deest?= Date: Fri, 9 Apr 2021 16:19:51 +0200 Subject: [PATCH 4/4] Add DeriveAnyClass to UVerb.lhs (not implied by DerivingVia on 8.6.5) --- doc/cookbook/uverb/UVerb.lhs | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/cookbook/uverb/UVerb.lhs b/doc/cookbook/uverb/UVerb.lhs index 52566ca2..cc771111 100644 --- a/doc/cookbook/uverb/UVerb.lhs +++ b/doc/cookbook/uverb/UVerb.lhs @@ -15,6 +15,7 @@ handlers that respond with arbitrary open unions of types. {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-} +{-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DerivingVia #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-}