diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -2,6 +2,15 @@
 
 ## Unreleased changes
 
+## [0.1.1.4] - 2020-04-30
+### Fixed
+- Tweak `package.yaml` to make `stack-2.3.1` happy.
+
+## [0.1.1.3] - 2020-04-30
+### Fixed
+- Change Hackage upload command to `--pvp-bounds upper` instead of `both` to fix plan construction
+  for older GHCs. This is needed to fix haddocks building on Hackage.
+
 ## [0.1.1.2] - 2020-04-15
 ### Changed
 - Resolver version up.
diff --git a/cobot.cabal b/cobot.cabal
--- a/cobot.cabal
+++ b/cobot.cabal
@@ -1,138 +1,131 @@
-cabal-version: 1.12
-name: cobot
-version: 0.1.1.2
-license: BSD3
-license-file: LICENSE
-copyright: 2018—2019, Less Wrong Bio
-maintainer: pavel@yakovlev.me
-author: Pavel Yakovlev, Bogdan Neterebskii, Alexander Sadovnikov
-homepage: https://github.com/biocad/cobot#readme
-bug-reports: https://github.com/biocad/cobot/issues
-synopsis: Computational biology toolkit to collaborate with researchers in constructive protein engineering
-description:
-    Please see the README on GitHub at <https://github.com/biocad/cobot#readme>
-category: Bio
-build-type: Simple
+cabal-version: 2.2
+
+-- This file has been generated from package.yaml by hpack version 0.33.0.
+--
+-- see: https://github.com/sol/hpack
+--
+-- hash: 4089a1d80a81d96aba9533cda10ea42186142528d17846553acc98dcd7bf43b0
+
+name:           cobot
+version:        0.1.1.4
+synopsis:       Computational biology toolkit to collaborate with researchers in constructive protein engineering
+description:    Please see the README on GitHub at <https://github.com/biocad/cobot#readme>
+category:       Bio
+homepage:       https://github.com/biocad/cobot#readme
+bug-reports:    https://github.com/biocad/cobot/issues
+author:         Pavel Yakovlev, Bogdan Neterebskii, Alexander Sadovnikov
+maintainer:     pavel@yakovlev.me
+copyright:      2018—2019, Less Wrong Bio
+license:        BSD-3-Clause
+license-file:   LICENSE
+build-type:     Simple
 extra-source-files:
     README.md
     ChangeLog.md
 
 source-repository head
-    type: git
-    location: https://github.com/biocad/cobot
+  type: git
+  location: https://github.com/biocad/cobot
 
 library
-    exposed-modules:
-        Bio.Chain
-        Bio.Chain.Alignment
-        Bio.Chain.Alignment.Algorithms
-        Bio.Chain.Alignment.Scoring
-        Bio.Chain.Alignment.Scoring.Loader
-        Bio.Chain.Alignment.Scoring.TH
-        Bio.Chain.Alignment.Type
-        Bio.Molecule
-        Bio.NucleicAcid.Chain
-        Bio.NucleicAcid.Nucleotide
-        Bio.NucleicAcid.Nucleotide.Instances
-        Bio.NucleicAcid.Nucleotide.Type
-        Bio.Protein.Algebra
-        Bio.Protein.AminoAcid
-        Bio.Protein.AminoAcid.Instances
-        Bio.Protein.AminoAcid.Type
-        Bio.Protein.Chain
-        Bio.Protein.Chain.Builder
-        Bio.Protein.Metric
-        Bio.Utils.Geometry
-        Bio.Utils.IUPAC
-        Bio.Utils.Matrix
-        Bio.Utils.Monomer
-    hs-source-dirs: src
-    other-modules:
-        Paths_cobot
-    default-language: Haskell2010
-    default-extensions: AllowAmbiguousTypes ConstraintKinds
-                        DeriveFoldable DeriveFunctor DeriveGeneric DeriveTraversable
-                        FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving
-                        MultiWayIf RankNTypes RecordWildCards ScopedTypeVariables
-                        TypeApplications TypeFamilies TypeSynonymInstances
-                        UndecidableInstances
-    build-depends:
-        array >=0.5.4.0 && <0.6,
-        base >=4.7 && <5,
-        bytestring >=0.10.10.0 && <0.11,
-        containers >=0.6.2.1 && <0.7,
-        deepseq >=1.4.4.0 && <1.5,
-        lens >=4.18.1 && <4.19,
-        linear >=1.20.9 && <1.21,
-        megaparsec >=8.0.0 && <8.1,
-        mtl >=2.2.2 && <2.3,
-        split >=0.2.3.4 && <0.3,
-        template-haskell >=2.15.0.0 && <2.16,
-        text >=1.2.4.0 && <1.3
+  exposed-modules:
+      Bio.Chain
+      Bio.Chain.Alignment
+      Bio.Chain.Alignment.Algorithms
+      Bio.Chain.Alignment.Scoring
+      Bio.Chain.Alignment.Scoring.Loader
+      Bio.Chain.Alignment.Scoring.TH
+      Bio.Chain.Alignment.Type
+      Bio.Molecule
+      Bio.NucleicAcid.Chain
+      Bio.NucleicAcid.Nucleotide
+      Bio.NucleicAcid.Nucleotide.Instances
+      Bio.NucleicAcid.Nucleotide.Type
+      Bio.Protein.Algebra
+      Bio.Protein.AminoAcid
+      Bio.Protein.AminoAcid.Instances
+      Bio.Protein.AminoAcid.Type
+      Bio.Protein.Chain
+      Bio.Protein.Chain.Builder
+      Bio.Protein.Metric
+      Bio.Utils.Geometry
+      Bio.Utils.IUPAC
+      Bio.Utils.Matrix
+      Bio.Utils.Monomer
+      Paths_cobot
+  autogen-modules:
+      Paths_cobot
+  hs-source-dirs:
+      src
+  default-extensions: AllowAmbiguousTypes ConstraintKinds DeriveFoldable DeriveFunctor DeriveGeneric DeriveTraversable FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving MultiWayIf RankNTypes RecordWildCards ScopedTypeVariables TypeApplications TypeFamilies TypeSynonymInstances UndecidableInstances
+  build-depends:
+      array
+    , base >=4.7 && <5
+    , bytestring
+    , containers
+    , deepseq
+    , lens
+    , linear
+    , megaparsec
+    , mtl
+    , split
+    , template-haskell
+    , text
+  default-language: Haskell2010
 
 test-suite cobot-test
-    type: exitcode-stdio-1.0
-    main-is: Spec.hs
-    hs-source-dirs: test
-    other-modules:
-        HandcraftedSpec
-        JuliaSpec
-        Paths_cobot
-    default-language: Haskell2010
-    default-extensions: AllowAmbiguousTypes ConstraintKinds
-                        DeriveFoldable DeriveFunctor DeriveGeneric DeriveTraversable
-                        FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving
-                        MultiWayIf RankNTypes RecordWildCards ScopedTypeVariables
-                        TypeApplications TypeFamilies TypeSynonymInstances
-                        UndecidableInstances
-    ghc-options: -threaded -rtsopts
-                 "-with-rtsopts=-A64m -qb0 -I0 -N -qn4"
-    build-depends:
-        array >=0.5.4.0 && <0.6,
-        base >=4.7 && <5,
-        bytestring >=0.10.10.0 && <0.11,
-        cobot -any,
-        containers >=0.6.2.1 && <0.7,
-        deepseq >=1.4.4.0 && <1.5,
-        hspec >=2.7.1 && <2.8,
-        lens >=4.18.1 && <4.19,
-        linear >=1.20.9 && <1.21,
-        megaparsec >=8.0.0 && <8.1,
-        mtl >=2.2.2 && <2.3,
-        split >=0.2.3.4 && <0.3,
-        template-haskell >=2.15.0.0 && <2.16,
-        text >=1.2.4.0 && <1.3
+  type: exitcode-stdio-1.0
+  main-is: Spec.hs
+  other-modules:
+      HandcraftedSpec
+      JuliaSpec
+      Paths_cobot
+  hs-source-dirs:
+      test
+  default-extensions: AllowAmbiguousTypes ConstraintKinds DeriveFoldable DeriveFunctor DeriveGeneric DeriveTraversable FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving MultiWayIf RankNTypes RecordWildCards ScopedTypeVariables TypeApplications TypeFamilies TypeSynonymInstances UndecidableInstances
+  ghc-options: -threaded -rtsopts "-with-rtsopts=-A64m -qb0 -I0 -N -qn4"
+  build-depends:
+      array
+    , base >=4.7 && <5
+    , bytestring
+    , cobot
+    , containers
+    , deepseq
+    , hspec
+    , lens
+    , linear
+    , megaparsec
+    , mtl
+    , split
+    , template-haskell
+    , text
+  default-language: Haskell2010
 
 benchmark cobot-bench
-    type: exitcode-stdio-1.0
-    main-is: Main.hs
-    hs-source-dirs: bench
-    other-modules:
-        Paths_cobot
-    default-language: Haskell2010
-    default-extensions: AllowAmbiguousTypes ConstraintKinds
-                        DeriveFoldable DeriveFunctor DeriveGeneric DeriveTraversable
-                        FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving
-                        MultiWayIf RankNTypes RecordWildCards ScopedTypeVariables
-                        TypeApplications TypeFamilies TypeSynonymInstances
-                        UndecidableInstances OverloadedStrings
-    ghc-options: -threaded -rtsopts
-                 "-with-rtsopts=-A64m -qb0 -I0 -N -qn4"
-    build-depends:
-        array >=0.5.4.0 && <0.6,
-        base >=4.7 && <5,
-        bytestring >=0.10.10.0 && <0.11,
-        clock ==0.8.*,
-        cobot -any,
-        containers >=0.6.2.1 && <0.7,
-        criterion >=1.5.6.2 && <1.6,
-        deepseq >=1.4.4.0 && <1.5,
-        lens >=4.18.1 && <4.19,
-        linear >=1.20.9 && <1.21,
-        megaparsec >=8.0.0 && <8.1,
-        mtl >=2.2.2 && <2.3,
-        parallel >=3.2.2.0 && <3.3,
-        random ==1.1.*,
-        split >=0.2.3.4 && <0.3,
-        template-haskell >=2.15.0.0 && <2.16,
-        text >=1.2.4.0 && <1.3
+  type: exitcode-stdio-1.0
+  main-is: Main.hs
+  other-modules:
+      Paths_cobot
+  hs-source-dirs:
+      bench
+  default-extensions: AllowAmbiguousTypes ConstraintKinds DeriveFoldable DeriveFunctor DeriveGeneric DeriveTraversable FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving MultiWayIf RankNTypes RecordWildCards ScopedTypeVariables TypeApplications TypeFamilies TypeSynonymInstances UndecidableInstances OverloadedStrings
+  ghc-options: -threaded -rtsopts "-with-rtsopts=-A64m -qb0 -I0 -N -qn4"
+  build-depends:
+      array
+    , base >=4.7 && <5
+    , bytestring
+    , clock
+    , cobot
+    , containers
+    , criterion
+    , deepseq
+    , lens
+    , linear
+    , megaparsec
+    , mtl
+    , parallel
+    , random
+    , split
+    , template-haskell
+    , text
+  default-language: Haskell2010
