diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,9 @@
+## [v1.4.2](https://github.com/diagrams/diagrams-core/tree/v1.4.2) (2019-10-19)
+
+* New `KeyVal` constructor for `Annotation` ([PR](https://github.com/diagrams/diagrams-core/pull/104))
+* Updates for GHC 8.8
+* Drop support for GHC 7.6 and 7.8
+
 ## [v1.4.1.1](https://github.com/diagrams/diagrams-core/tree/v1.4.1.1) (2018-06-17)
 
 * Add some `ConstraintKinds` pragmas to allow compilation on GHC 7.8 and 7.6
diff --git a/diagrams-core.cabal b/diagrams-core.cabal
--- a/diagrams-core.cabal
+++ b/diagrams-core.cabal
@@ -1,5 +1,5 @@
 Name:                diagrams-core
-Version:             1.4.1.1
+Version:             1.4.2
 Synopsis:            Core libraries for diagrams EDSL
 Description:         The core modules underlying diagrams,
                      an embedded domain-specific language
@@ -15,7 +15,7 @@
 Cabal-version:       1.18
 Extra-source-files:  CHANGELOG.md, README.markdown, diagrams/*.svg
 extra-doc-files:     diagrams/*.svg
-Tested-with:         GHC == 7.8.4, GHC == 7.10.2, GHC == 8.0.1, GHC == 8.2.2, GHC == 8.4.1
+Tested-with:         GHC == 7.10.2, GHC == 8.0.1, GHC == 8.2.2, GHC == 8.4.1, GHC == 8.6.1, GHC == 8.8.1
 Source-repository head
   type:     git
   location: git://github.com/diagrams/diagrams-core.git
@@ -36,13 +36,13 @@
                        Diagrams.Core.Types,
                        Diagrams.Core.V
 
-  Build-depends:       base >= 4.2 && < 4.12,
-                       containers >= 0.4.2 && < 0.6,
+  Build-depends:       base >= 4.2 && < 4.14,
+                       containers >= 0.4.2 && < 0.7,
                        unordered-containers >= 0.2 && < 0.3,
-                       semigroups >= 0.8.4 && < 0.19,
+                       semigroups >= 0.8.4 && < 0.20,
                        monoid-extras >= 0.3 && < 0.6,
                        dual-tree >= 0.2 && < 0.3,
-                       lens >= 4.0 && < 4.17,
+                       lens >= 4.0 && < 4.19,
                        linear >= 1.11.3 && < 1.21,
                        adjunctions >= 4.0 && < 5.0,
                        distributive >=0.2.2 && < 1.0,
diff --git a/src/Diagrams/Core/Types.hs b/src/Diagrams/Core/Types.hs
--- a/src/Diagrams/Core/Types.hs
+++ b/src/Diagrams/Core/Types.hs
@@ -47,8 +47,8 @@
          -- ** Annotations
 
          -- *** Static annotations
-         Annotation(Href, OpacityGroup)
-       , applyAnnotation, href, opacityGroup, groupOpacity
+         Annotation(Href, OpacityGroup, KeyVal)
+       , applyAnnotation, href, opacityGroup, groupOpacity, keyVal
 
          -- *** Dynamic (monoidal) annotations
        , UpAnnots, DownAnnots, transfToAnnot, transfFromAnnot
@@ -252,6 +252,7 @@
 data Annotation
   = Href String    -- ^ Hyperlink
   | OpacityGroup Double
+  | KeyVal (String, String)
   deriving Show
 
 -- | Apply a static annotation at the root of a diagram.
@@ -272,6 +273,10 @@
 opacityGroup = applyAnnotation . OpacityGroup
 groupOpacity = applyAnnotation . OpacityGroup
 
+-- | Apply a general Key-Value annotation
+keyVal :: (Metric v, OrderedField n, Semigroup m)
+  => (String, String) -> QDiagram b v n m -> QDiagram b v n m
+keyVal = applyAnnotation . KeyVal
 
 -- | The fundamental diagram type.  The type variables are as follows:
 --
