diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 0.4.2.1
+
+* Fixed links to GHC extensions.
+
 # 0.4.2.0
 
 * Added `useShortcutFrom`.
@@ -10,7 +14,7 @@
 # 0.4.0.0
 
 * Exported `Shortcut`.
-* Renamed “brabraumeisterumeister” to “brew” (it still uses Braumeister, but this can change in the future).
+* Renamed “braumeister” to “brew” (it still uses Braumeister, but this can change in the future).
 
 # 0.3.0.0
 
diff --git a/shortcut-links.cabal b/shortcut-links.cabal
--- a/shortcut-links.cabal
+++ b/shortcut-links.cabal
@@ -1,8 +1,8 @@
 name:                shortcut-links
-version:             0.4.2.0
+version:             0.4.2.1
 synopsis:            Link shortcuts for use in text markup
 description:
-  This package is a database of link shortcuts. A Markdown example: 
+  This package is a database of link shortcuts. A Markdown example:
   @\[Google\](\@w)@ turns into <http://en.wikipedia.org/wiki/Google>.
   .
   See the "ShortcutLinks.All" module for a full list of shortcuts.
@@ -15,10 +15,11 @@
 copyright:           2015–∞ Aelve
 category:            Text, Web
 build-type:          Simple
-extra-source-files:  
+extra-source-files:
   README.md
   CHANGELOG.md
 cabal-version:       >=1.10
+tested-with:         GHC ==8.0.2, GHC ==8.2.2, GHC ==8.4.4, GHC ==8.6.2
 
 source-repository head
   type:                git
@@ -28,8 +29,8 @@
   exposed-modules:     ShortcutLinks
                        ShortcutLinks.All
                        ShortcutLinks.Utils
-  -- other-modules:       
-  -- other-extensions:    
+  -- other-modules:
+  -- other-extensions:
   build-depends:       base >= 4.5 && < 5
                      , text >= 1.1
   hs-source-dirs:      src
diff --git a/src/ShortcutLinks.hs b/src/ShortcutLinks.hs
--- a/src/ShortcutLinks.hs
+++ b/src/ShortcutLinks.hs
@@ -1,6 +1,4 @@
-{-# LANGUAGE
-OverloadedStrings
-  #-}
+{-# LANGUAGE OverloadedStrings #-}
 
 module ShortcutLinks
 (
diff --git a/src/ShortcutLinks/All.hs b/src/ShortcutLinks/All.hs
--- a/src/ShortcutLinks/All.hs
+++ b/src/ShortcutLinks/All.hs
@@ -1,8 +1,6 @@
-{-# LANGUAGE
-OverloadedStrings,
-DeriveFunctor,
-ViewPatterns
-  #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE DeriveFunctor #-}
+{-# LANGUAGE ViewPatterns #-}
 
 
 module ShortcutLinks.All
@@ -564,7 +562,7 @@
 <https://github.com/aelve/shortcut-links>
 @
 
-The repository owner can also be given as an option (to avoid mentioning nem in the link text):
+The repository owner can also be given as an option (to avoid mentioning them in the link text):
 
 @
 \[shortcut-links\](\@gh(aelve))
@@ -594,7 +592,7 @@
 <https://bitbucket.org/bos/text>
 @
 
-The repository owner can also be given as an option (to avoid mentioning nem in the link text):
+The repository owner can also be given as an option (to avoid mentioning them in the link text):
 
 @
 \[text\](\@bitbucket(bos))
@@ -624,7 +622,7 @@
 <https://gitlab.com/learnyou/lysa>
 @
 
-The repository owner can also be given as an option (to avoid mentioning nem in the link text):
+The repository owner can also be given as an option (to avoid mentioning them in the link text):
 
 @
 \[lysa\](\@gitlab(learnyou))
@@ -920,13 +918,11 @@
 
 @
 \[ViewPatterns\](\@ghc-ext)
-<https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/syntax-extns.html#view-patterns>
+<https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#extension-ViewPatterns>
 @
 -}
 ghcExt :: Shortcut
-ghcExt _ ext = case lookup ext ghcExtsList of
-  Nothing   -> fail (format "unknown GHC extension '{}'" ext)
-  Just link -> return link
+ghcExt _ q = return $ "https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#extension-" <> q
 
 {- | <https://www.ietf.org/rfc.html RFCs> (shortcut: “rfc”)
 
@@ -1071,114 +1067,3 @@
     -- Note that e.g. “man-made” is considered 2 separate words.
     camel = T.concat . map (titleFirst . T.filter isAlphaNum) . T.split isSep
     cat = maybe "Main" camel mbCat
-
-ghcExtsList :: [(Text, Text)]
-ghcExtsList = do
-  let (.=) = (,)
-      base = "https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/"
-      prefix x = map (\(a, b) -> (a, x <> b))
-  prefix base $ concat [
-    prefix "syntax-extns.html" [
-      "DisambiguateRecordFields" .= "#disambiguate-fields",
-      "EmptyCase" .= "#empty-case",
-      "NoImplicitPrelude" .= "#rebindable-syntax",
-      "NegativeLiterals" .= "#negative-literals",
-      "RebindableSyntax" .= "#rebindable-syntax",
-      "PatternGuards" .= "#pattern-guards",
-      "ViewPatterns" .= "#view-patterns",
-      "UnicodeSyntax" .= "#unicode-syntax",
-      "MagicHash" .= "#magic-hash",
-      "ParallelListComp" .= "#parallel-list-comprehensions",
-      "TransformListComp" .= "#generalised-list-comprehensions",
-      "MonadComprehensions" .= "#monad-comprehensions",
-      "ExplicitNamespaces" .= "#explicit-namespaces",
-      "RecursiveDo" .= "#recursive-do-notation",
-      "RecordWildCards" .= "#record-wildcards",
-      "NamedFieldPuns" .= "#record-puns",
-      "PackageImports" .= "#package-imports",
-      "LambdaCase" .= "#lambda-case",
-      "MultiWayIf" .= "#multi-way-if",
-      "NumDecimals" .= "#num-decimals",
-      "BinaryLiterals" .= "#binary-literals",
-      "PostfixOperators" .= "#postfix-operators",
-      "TupleSections" .= "#tuple-sections",
-      "PatternSynonyms" .= "#pattern-synonyms" ],
-
-    prefix "data-type-extensions.html" [
-      "GADTs" .= "#gadt",
-      "GADTSyntax" .= "#gadt-style",
-      "ExistentialQuantification" .= "#existential-quantification",
-      "LiberalTypeSynonyms" .= "#type-synonyms",
-      "EmptyDataDecls" .= "#nullary-types",
-      "DatatypeContexts" .= "#datatype-contexts",
-      "TypeOperators" .= "#type-operators" ],
-
-    prefix "other-type-extensions.html" [
-      "AllowAmbiguousTypes" .= "#ambiguity",
-      "ImplicitParams" .= "#implicit-parameters",
-      "NoMonomorphismRestriction" .= "#monomorphism",
-      "RelaxedPolyRec" .= "#typing-binds",
-      "MonoLocalBinds" .= "#mono-local-binds",
-      "ScopedTypeVariables" .= "#scoped-type-variables",
-      "ExplicitForAll" .= "#explicit-foralls",
-      "PolymorphicComponents" .= "#universal-quantification",
-      "Rank2Types" .= "#universal-quantification",
-      "RankNTypes" .= "#universal-quantification",
-      "ImpredicativeTypes" .= "#impredicative-polymorphism",
-      "KindSignatures" .= "#kinding",
-      "FlexibleContexts" .= "#flexible-contexts" ],
-
-    prefix "type-class-extensions.html" [
-      "IncoherentInstances" .= "#instance-overlap",
-      "OverlappingInstances" .= "#instance-overlap",
-      "OverloadedLists" .= "#overloaded-lists",
-      "OverloadedStrings" .= "#overloaded-strings",
-      "UndecidableInstances" .= "#undecidable-instances",
-      "TypeSynonymInstances" .= "#flexible-instance-head",
-      "FlexibleInstances" .= "#instance-rules",
-      "ConstrainedClassMethods" .= "#class-method-types",
-      "DefaultSignatures" .= "#class-default-signatures",
-      "MultiParamTypeClasses" .= "#multi-param-type-classes",
-      "NullaryTypeClasses" .= "#nullary-type-classes",
-      "InstanceSigs" .= "#instance-sigs",
-      "FunctionalDependencies" .= "#functional-dependencies" ],
-
-    prefix "deriving.html" [
-      "AutoDeriveTypeable" .= "#auto-derive-typeable",
-      "DeriveDataTypeable" .= "#deriving-typeable",
-      "DeriveGeneric" .= "#deriving-typeable",
-      "DeriveFunctor" .= "#deriving-extra",
-      "DeriveTraversable" .= "#deriving-extra",
-      "DeriveFoldable" .= "#deriving-extra",
-      "GeneralizedNewtypeDeriving" .= "#newtype-deriving",
-      "DeriveAnyClass" .= "#derive-any-class",
-      "StandaloneDeriving" .= "#stand-alone-deriving" ],
-
-    prefix "template-haskell.html" [
-      "TemplateHaskell" .= "",
-      "QuasiQuotes" .= "#th-quasiquotation" ],
-
-    prefix "ffi.html" [
-      "ForeignFunctionInterface" .= "",
-      "InterruptibleFFI" .= "#ffi-interruptible",
-      "CApiFFI" .= "#ffi-capi" ],
-
-    prefix "partial-type-signatures.html" [
-      "PartialTypeSignatures" .= "",
-      "NamedWildCards" .= "#named-wildcards" ],
-
-    map (.= "safe-haskell.html") [
-      "Safe",
-      "Trustworthy",
-      "Unsafe" ],
-
-    [ "Arrows" .= "arrow-notation.html",
-      "ConstraintKinds" .= "constraint-kind.html",
-      "DataKinds" .= "promotion.html",
-      "ExtendedDefaultRules" .= "interactive-evaluation.html#extended-default-rules",
-      "TypeFamilies" .= "type-families.html",
-      "PolyKinds" .= "kind-polymorphism.html",
-      "BangPatterns" .= "bang-patterns.html",
-      "CPP" .= "options-phases.html#c-pre-processor",
-      "RoleAnnotations" .= "roles.html#role-annotations",
-      "UnboxedTuples" .= "primitives.html#unboxed-tuples" ] ]
diff --git a/src/ShortcutLinks/Utils.hs b/src/ShortcutLinks/Utils.hs
--- a/src/ShortcutLinks/Utils.hs
+++ b/src/ShortcutLinks/Utils.hs
@@ -1,7 +1,6 @@
-{-# LANGUAGE
-OverloadedStrings,
-FlexibleInstances
-  #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE FlexibleInstances #-}
+
 
 {- |
 Useful functions when writing your own link rules.
