diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-#! /usr/bin/env runhaskell
--- Copyright : 2011-2017 Magnus Therning
--- License   : BSD3
-module Main where
-
-import Distribution.Simple
-import Distribution.PackageDescription
-import Distribution.Simple.Utils
-import Distribution.Simple.LocalBuildInfo
-import Control.Monad
-import System.FilePath
-import System.Directory
-import System.IO.Error
-
-main = defaultMainWithHooks $ simpleUserHooks
-    { cleanHook = profileClean
-    }
-
-profileClean pd v uh cf = let
-        _matchFileGlob g = catchIOError (matchFileGlob g) (\ _ -> return [])
-    in do
-        (cleanHook simpleUserHooks) pd v uh cf
-        tixFiles <- _matchFileGlob "*.tix"
-        mapM_ removeFile tixFiles
-        doesDirectoryExist ".hpc" >>= \ d -> when d $ removeDirectoryRecursive ".hpc"
diff --git a/hsini.cabal b/hsini.cabal
--- a/hsini.cabal
+++ b/hsini.cabal
@@ -1,51 +1,66 @@
-name: hsini
-version: 0.5.1.1
-license: BSD3
-license-file: LICENSE
-author: Magnus Therning
-maintainer: magnus@therning.org
-copyright: Magnus Therning, 2010-2014
-synopsis: Package for user configuration files (INI)
-description: None yet
-build-type: Custom
-category: Configuration, Data
-cabal-version: >= 1.10
+-- This file has been generated from package.yaml by hpack version 0.28.2.
+--
+-- see: https://github.com/sol/hpack
+--
+-- hash: 0a9d3d220e23a6165acb4a43a8293ef95e41667b8afd689196d833adad1dba85
 
+name:           hsini
+version:        0.5.1.2
+synopsis:       ini configuration files
+description:    Library for reading and writing configuration files in INI format (see <https://en.wikipedia.org/wiki/INI_file>).
+category:       Configuration, Data
+maintainer:     Magnus Therning <magnus@therning.org>
+license:        BSD3
+license-file:   LICENSE
+build-type:     Simple
+cabal-version:  >= 1.10
+extra-source-files:
+    package.yaml
+    stack.yaml
+
 source-repository head
-    type: git
-    location: https://github.com/magthe/hsini.git
+  type: git
+  location: https://github.com/magthe/hsini.git
 
 library
-    hs-source-dirs: src
-    default-language: Haskell2010
-    build-depends: base >=4.7 && <4.11,
-                   bytestring ==0.10.*,
-                   containers ==0.5.*,
-                   mtl ==2.2.*,
-                   parsec ==3.1.*
-    exposed-modules: Data.Ini
-                     Data.Ini.Types
-                     Data.Ini.Reader
-    other-modules: Data.Ini.Reader.Internals
+  exposed-modules:
+      Data.Ini
+      Data.Ini.Reader
+      Data.Ini.Types
+  other-modules:
+      Data.Ini.Reader.Internals
+  hs-source-dirs:
+      src
+  build-depends:
+      base <5
+    , bytestring
+    , containers
+    , mtl
+    , parsec
+  default-language: Haskell2010
 
 test-suite hsini-tests
-    type: exitcode-stdio-1.0
-    hs-source-dirs: tst, src
-    main-is: Main.hs
-    other-modules: Data.Ini
-                   Data.Ini.Reader.Internals
-                   Data.Ini.Types
-                   Ini
-                   ReaderI
-    default-language: Haskell2010
-    build-depends: base,
-                   containers,
-                   bytestring,
-                   parsec,
-                   mtl,
-                   HUnit,
-                   tasty,
-                   tasty-hunit,
-                   tasty-quickcheck,
-                   tasty-th,
-                   QuickCheck
+  type: exitcode-stdio-1.0
+  main-is: Main.hs
+  other-modules:
+      Ini
+      ReaderI
+      Data.Ini
+      Data.Ini.Reader
+      Data.Ini.Reader.Internals
+      Data.Ini.Types
+      Paths_hsini
+  hs-source-dirs:
+      tst
+      src
+  build-depends:
+      base
+    , bytestring
+    , containers
+    , mtl
+    , parsec
+    , tasty
+    , tasty-hunit
+    , tasty-quickcheck
+    , tasty-th
+  default-language: Haskell2010
diff --git a/package.yaml b/package.yaml
new file mode 100644
--- /dev/null
+++ b/package.yaml
@@ -0,0 +1,43 @@
+name: hsini
+version: 0.5.1.2
+synopsis: ini configuration files
+description: >-
+  Library for reading and writing configuration files in INI format (see
+  <https://en.wikipedia.org/wiki/INI_file>).
+maintainer: Magnus Therning <magnus@therning.org>
+license: BSD3
+category: Configuration, Data
+extra-source-files:
+  - package.yaml
+  - stack.yaml
+
+git: https://github.com/magthe/hsini.git
+
+library:
+  source-dirs:
+    - src
+  dependencies:
+    - base <5
+    - bytestring
+    - containers
+    - mtl
+    - parsec
+  other-modules:
+    - Data.Ini.Reader.Internals
+
+tests:
+  hsini-tests:
+    source-dirs:
+      - tst
+      - src
+    main: Main.hs
+    dependencies:
+      - base
+      - bytestring
+      - containers
+      - mtl
+      - parsec
+      - tasty
+      - tasty-hunit
+      - tasty-quickcheck
+      - tasty-th
diff --git a/stack.yaml b/stack.yaml
new file mode 100644
--- /dev/null
+++ b/stack.yaml
@@ -0,0 +1,10 @@
+resolver: lts-11.11
+
+packages:
+  - '.'
+
+extra-deps: []
+
+flags: {}
+
+extra-package-dbs: []
