diff --git a/CHANGELOG b/CHANGELOG
deleted file mode 100644
--- a/CHANGELOG
+++ /dev/null
@@ -1,8 +0,0 @@
-2014-11-11  Peter Jones  <pjones@devalot.com>
-
-	* System/IO/Streams/Csv/Decode.hs added more descriptive error messages.
-	* cassava-streams bumped version number (0.1.1.0).
-
-2014-04-30  Peter Jones  <pjones@devalot.com>
-
-	* cassava-streams initial release (version 0.1.0.0).
diff --git a/CHANGES.md b/CHANGES.md
new file mode 100644
--- /dev/null
+++ b/CHANGES.md
@@ -0,0 +1,15 @@
+# Change Log / Release Notes
+
+## 0.2.0.0 (February 8, 2016)
+
+  * Compile with GHC 7.10.3
+  * Update dependency versions
+  * Build with stack and LTS Haskell 5.2
+
+## 0.1.1.0 (November 11, 2014)
+
+  * `System/IO/Streams/Csv/Decode.hs` added more descriptive error messages.
+
+## 0.1.0.0 (April 30, 2014)
+
+  * cassava-streams initial release
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2014 Peter Jones <pjones@devalot.com>
+Copyright (c) 2014-2016 Peter Jones <pjones@devalot.com>
 
 All rights reserved.
 
diff --git a/build/nixpkgs.nix b/build/nixpkgs.nix
new file mode 100644
--- /dev/null
+++ b/build/nixpkgs.nix
@@ -0,0 +1,13 @@
+with (import <nixpkgs> {});
+
+stdenv.mkDerivation {
+  name = "cassava-streams";
+
+  buildInputs = [
+    # GHC:
+    haskell.packages.lts-4_2.ghc
+
+    # Non-Haskell Dependencies:
+    zlib
+  ];
+}
diff --git a/build/stack.yaml b/build/stack.yaml
new file mode 100644
--- /dev/null
+++ b/build/stack.yaml
@@ -0,0 +1,9 @@
+resolver: lts-5.2
+
+packages:
+  - ../
+
+flags:
+  cassava-streams:
+    maintainer: true
+    tutorial: true
diff --git a/cassava-streams.cabal b/cassava-streams.cabal
--- a/cassava-streams.cabal
+++ b/cassava-streams.cabal
@@ -1,16 +1,16 @@
 --------------------------------------------------------------------------------
 name:          cassava-streams
-version:       0.1.1.0
+version:       0.2.0.0
 synopsis:      io-streams interface for the cassava CSV library.
 license:       BSD3
 license-file:  LICENSE
 author:        Peter Jones <pjones@devalot.com>
 maintainer:    Peter Jones <pjones@devalot.com>
-copyright:     Copyright (c) 2014 Peter Jones
+copyright:     Copyright (c) 2014-2016 Peter Jones
 category:      Data, Text, CSV, IO-Streams
 build-type:    Simple
-cabal-version: >=1.10
-tested-with:   GHC==7.8.2, GHC==7.8.3
+cabal-version: >=1.18
+tested-with:   GHC==7.10.3
 homepage:      https://github.com/pjones/cassava-streams
 bug-reports:   https://github.com/pjones/cassava-streams/issues
 description:
@@ -22,8 +22,10 @@
 --------------------------------------------------------------------------------
 extra-source-files:
   README.md
-  CHANGELOG
-  test/simple.csv
+  CHANGES.md
+  test/*.csv
+  build/*.yaml
+  build/*.nix
 
 --------------------------------------------------------------------------------
 source-repository head
@@ -39,6 +41,7 @@
 --------------------------------------------------------------------------------
 flag tutorial
   description: Build the tutorial binary (useful for profiling).
+  manual: True
   default: False
 
 --------------------------------------------------------------------------------
@@ -52,26 +55,29 @@
 
   hs-source-dirs: src
   default-language: Haskell2010
-  ghc-options: -O2 -Wall -fwarn-incomplete-uni-patterns
-  ghc-prof-options: -prof -auto-all
+  ghc-options: -Wall -fwarn-incomplete-uni-patterns
 
   if flag(maintainer)
     ghc-options: -Werror
+    ghc-prof-options: -prof -auto-all
 
   build-depends: base       >= 4.6   && < 5.0
                , bytestring >= 0.10  && < 0.11
                , cassava    >= 0.4   && < 0.5
-               , io-streams >= 1.1   && < 1.2
-               , vector     >= 0.10  && < 0.11
+               , io-streams >= 1.1   && < 1.4
+               , vector     >= 0.10  && < 0.12
 
 --------------------------------------------------------------------------------
 executable tutorial
   default-language: Haskell2010
   hs-source-dirs: bin
   main-is: tutorial.hs
-  ghc-options: -O2 -Wall -Werror -rtsopts
-  ghc-prof-options: -fprof-auto-top -fprof-cafs
+  ghc-options: -Wall -fwarn-incomplete-uni-patterns -rtsopts
 
+  if flag(maintainer)
+    ghc-options: -Werror
+    ghc-prof-options: -fprof-auto-top -fprof-cafs
+
   if !flag(tutorial)
     buildable: False
   else
@@ -85,7 +91,11 @@
   default-language: Haskell2010
   hs-source-dirs: test
   main-is: test.hs
-  ghc-options: -O2 -Wall -Werror
+  ghc-options: -Wall -fwarn-incomplete-uni-patterns
+
+  if flag(maintainer)
+    ghc-options: -Werror
+
   build-depends: base
                , QuickCheck >= 2.7 && < 3.0
                , bytestring
diff --git a/src/System/IO/Streams/Csv/Encode.hs b/src/System/IO/Streams/Csv/Encode.hs
--- a/src/System/IO/Streams/Csv/Encode.hs
+++ b/src/System/IO/Streams/Csv/Encode.hs
@@ -75,7 +75,7 @@
                        -> IO (OutputStream a)      -- ^ New @OutputStream@.
 encodeStreamByNameWith opts hdr output = do
   ref <- newIORef opts
-  makeOutputStream $ dispatch (\opts' -> encodeByNameWith opts' hdr) ref output
+  makeOutputStream $ dispatch (`encodeByNameWith` hdr) ref output
 
 --------------------------------------------------------------------------------
 -- | Encode records, ensuring that the header is written no more than once.
diff --git a/src/System/IO/Streams/Csv/Tutorial.hs b/src/System/IO/Streams/Csv/Tutorial.hs
--- a/src/System/IO/Streams/Csv/Tutorial.hs
+++ b/src/System/IO/Streams/Csv/Tutorial.hs
@@ -30,7 +30,6 @@
        ) where
 
 --------------------------------------------------------------------------------
-import Control.Applicative
 import Control.Monad
 import Data.Csv
 import qualified Data.Vector as V
diff --git a/test/header.csv b/test/header.csv
new file mode 100644
--- /dev/null
+++ b/test/header.csv
@@ -0,0 +1,1 @@
+State,Time,Title
diff --git a/test/test.hs b/test/test.hs
--- a/test/test.hs
+++ b/test/test.hs
@@ -19,7 +19,7 @@
 import Control.Monad
 import Data.ByteString (ByteString)
 import qualified Data.ByteString as BS
-import Data.Csv hiding (Record, NamedRecord, record)
+import Data.Csv hiding (Record, NamedRecord, record, header)
 import qualified Data.Vector as V
 import System.IO.Streams (InputStream, OutputStream)
 import qualified System.IO.Streams as Streams
@@ -96,8 +96,8 @@
 --------------------------------------------------------------------------------
 tests :: TestTree
 tests = testGroup "Tests"
-        [ QC.testProperty "namedRoundTrip"   $ prop_namedRoundTrip
-        , QC.testProperty "indexedRoundTrip" $ prop_indexedRoundTrip
+        [ QC.testProperty "namedRoundTrip"   prop_namedRoundTrip
+        , QC.testProperty "indexedRoundTrip" prop_indexedRoundTrip
         ]
 
 --------------------------------------------------------------------------------
