diff --git a/interpolate.cabal b/interpolate.cabal
--- a/interpolate.cabal
+++ b/interpolate.cabal
@@ -1,9 +1,11 @@
--- This file has been generated from package.yaml by hpack version 0.17.0.
+-- This file has been generated from package.yaml by hpack version 0.26.0.
 --
 -- see: https://github.com/sol/hpack
+--
+-- hash: cc8a15b9e3938bac2066e1f8e454e027bd589000a0baf42191f06ceb39e9ce04
 
 name:             interpolate
-version:          0.1.1
+version:          0.2.0
 homepage:         https://github.com/sol/interpolate#readme
 bug-reports:      https://github.com/sol/interpolate/issues
 license:          MIT
@@ -35,9 +37,9 @@
       Data.String.Interpolate.Parse
       Paths_interpolate
   build-depends:
-      base == 4.*
+      base ==4.*
+    , haskell-src-meta >=0.8
     , template-haskell
-    , haskell-src-meta >= 0.8
   ghc-options: -Wall
   default-language: Haskell2010
 
@@ -59,14 +61,16 @@
       Data.String.Interpolate.ParseSpec
       Data.String.Interpolate.UtilSpec
       Data.String.InterpolateSpec
+      Paths_interpolate
   build-depends:
-      base == 4.*
-    , template-haskell
-    , haskell-src-meta >= 0.8
-    , text
+      QuickCheck
+    , base ==4.*
+    , base-compat
     , bytestring
-    , hspec >= 1.5
-    , QuickCheck
+    , haskell-src-meta >=0.8
+    , hspec >=1.5
     , quickcheck-instances
+    , template-haskell
+    , text
   ghc-options: -Wall
   default-language: Haskell2010
diff --git a/src/Data/String/Interpolate.hs b/src/Data/String/Interpolate.hs
--- a/src/Data/String/Interpolate.hs
+++ b/src/Data/String/Interpolate.hs
@@ -40,7 +40,7 @@
 -- profession: Marvin the λ-scientist
 i :: QuasiQuoter
 i = QuasiQuoter {
-    quoteExp = toExp . parseNodes
+    quoteExp = toExp . parseNodes . decodeNewlines
   , quotePat = err "pattern"
   , quoteType = err "type"
   , quoteDec = err "declaration"
@@ -62,3 +62,11 @@
             reportError "Parse error in expression!"
             [|""|]
           Right e -> return e
+
+decodeNewlines :: String -> String
+decodeNewlines = go
+  where
+    go xs = case xs of
+      '\r' : '\n' : ys -> '\n' : go ys
+      y : ys -> y : go ys
+      [] -> []
diff --git a/test/Data/String/Interpolate/UtilSpec.hs b/test/Data/String/Interpolate/UtilSpec.hs
--- a/test/Data/String/Interpolate/UtilSpec.hs
+++ b/test/Data/String/Interpolate/UtilSpec.hs
@@ -1,8 +1,10 @@
 module Data.String.Interpolate.UtilSpec (main, spec) where
 
+import           Prelude ()
+import           Prelude.Compat
+
 import           Test.Hspec
 import           Test.QuickCheck
-import           Control.Applicative
 
 import           Data.String.Interpolate.Util
 
