diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,9 @@
+## 0.8.0.4 (2018-01-26)
+
+- Require hlint 2.0.x.
+
+- New and improved Nix packaging.
+
 ## 0.8.0.3 (2018-01-11)
 
 - Use hpack.
diff --git a/mellon-gpio.cabal b/mellon-gpio.cabal
--- a/mellon-gpio.cabal
+++ b/mellon-gpio.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 492822d6892b4ca0c57555614ee7dec63e5ed288bd0dc031e8ac701fc74fc433
+-- hash: 5d0131e44b39a6d83e0f72ecd4cdd7e84764a20bb89537904b1bd6b9ead0ede4
 
 name:                   mellon-gpio
-version:                0.8.0.3
+version:                0.8.0.4
 synopsis:               GPIO support for mellon
 description:            @mellon-gpio@ provides a GPIO-driven @mellon-core@ @Device@.
                         Currently, it provides support for Linux @sysfs@-based GPIO.
@@ -24,6 +24,7 @@
 
 extra-source-files:
     changelog.md
+    package.yaml
     README.md
 
 source-repository head
@@ -73,5 +74,5 @@
   else
     build-depends:
         base
-      , hlint >=1.9 && <2.1
+      , hlint ==2.0.*
   default-language: Haskell2010
diff --git a/package.yaml b/package.yaml
new file mode 100644
--- /dev/null
+++ b/package.yaml
@@ -0,0 +1,79 @@
+name:       mellon-gpio
+version:    0.8.0.4
+synopsis:   GPIO support for mellon
+category:   System
+stability:  experimental
+author:     Drew Hess <dhess-src@quixoftic.com>
+maintainer: Drew Hess <dhess-src@quixoftic.com>
+copyright:  Copyright (c) 2017, Quixoftic, LLC
+license:    BSD3
+github:     quixoftic/mellon
+
+description: ! '@mellon-gpio@ provides a GPIO-driven @mellon-core@ @Device@.
+
+  Currently, it provides support for Linux @sysfs@-based GPIO.'
+
+tested-with: GHC==7.10.3 GHC==8.0.1 GHC==8.0.2 GHC==8.2.1 GHC==8.2.2
+
+flags:
+  test-hlint:
+    description: Build hlint test
+    manual: true
+    default: true
+
+when:
+  - condition: impl(ghc >= 8.0)
+    then:
+      ghc-options:
+        - -Wall
+        - -Wincomplete-uni-patterns
+        - -Wincomplete-record-updates
+    else:
+      ghc-options:
+        - -Wall
+        - -fwarn-incomplete-uni-patterns
+        - -fwarn-incomplete-record-updates
+
+library:
+  when:
+    - condition: impl(ghc >= 8.0)
+      then:
+        ghc-options:
+          - -Wcompat
+          - -Wnoncanonical-monad-instances
+          - -Wnoncanonical-monadfail-instances
+      else:
+        # provide/emulate `Control.Monad.Fail` and `Data.Semigroups` API for pre-GHC8
+        dependencies:
+          - fail       == 4.9.*
+          - semigroups == 0.18.*
+  source-dirs: src
+  dependencies:
+    - base        >=4.8 && <5
+    - hpio        >=0.8 && <1
+    - mellon-core ==0.8.*
+
+tests:
+  hlint:
+    main: hlint.hs
+    source-dirs: test
+    other-modules: []
+    ghc-options:
+      - -w
+      - -threaded
+      - -rtsopts
+      - -with-rtsopts=-N
+    when:
+      - condition: "!(flag(test-hlint))"
+        then:
+          buildable: false
+        else:
+          dependencies:
+            - base
+            - hlint ==2.0.*
+
+extra-source-files:
+- changelog.md
+- README.md
+- package.yaml
+
