diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,12 @@
 All notable changes to this project (as seen by library users) will be documented in this file.
 The CHANGELOG is available on [Github](https://github.com/luc-tielen/souffle-haskell.git/CHANGELOG.md).
 
+## [2.0.1] - 2020-09-05
+
+## Fixed
+
+- Compiler flags in package.yaml that lead to a compile error.
+
 ## [2.0.0] - 2020-08-23
 
 ### Added
diff --git a/lib/Language/Souffle/Experimental.hs b/lib/Language/Souffle/Experimental.hs
--- a/lib/Language/Souffle/Experimental.hs
+++ b/lib/Language/Souffle/Experimental.hs
@@ -248,6 +248,12 @@
 --   Note that due to TemplateHaskell staging restrictions, this function must
 --   be used in a different module than the module where 'Program' and 'Fact'
 --   instances are defined.
+--
+--   In order to use this function correctly, you have to add the following
+--   line to the top of the module where 'embedProgram' is used in order
+--   for the embedded C++ code to be compiled correctly:
+--
+--   > {-# OPTIONS_GHC -optc-std=c++17 -D__EMBEDDED_SOUFFLE__ #-}
 embedProgram :: Program prog => prog -> DSL prog 'Definition () -> Q [Dec]
 embedProgram program dsl = do
   cppFile <- qRunIO $ do
diff --git a/souffle-haskell.cabal b/souffle-haskell.cabal
--- a/souffle-haskell.cabal
+++ b/souffle-haskell.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: d1e5d51d922f3a246fbf5e312f90e05c4ad621f11985cb4fbe1de6ac504bd730
+-- hash: a4e6da289ecdafada838f9dc73d43b5f69a8411c5c7adb647efaefe5426dff62
 
 name:           souffle-haskell
-version:        2.0.0
+version:        2.0.1
 synopsis:       Souffle Datalog bindings for Haskell
 description:    Souffle Datalog bindings for Haskell.
 category:       Logic Programming, Foreign Binding, Bindings
@@ -93,7 +93,6 @@
       lib
   default-extensions: OverloadedStrings LambdaCase ScopedTypeVariables
   ghc-options: -Wall -Weverything -Wno-safe -Wno-unsafe -Wno-implicit-prelude -Wno-missed-specializations -Wno-all-missed-specializations -Wno-missing-import-lists -Wno-type-defaults -Wno-missing-local-signatures -Wno-monomorphism-restriction -Wno-missing-deriving-strategies -optP-Wno-nonportable-include-path -fhide-source-paths -fno-show-valid-hole-fits -fno-sort-valid-hole-fits
-  cpp-options: -std=c++17
   cxx-options: -std=c++17 -Wall
   include-dirs:
       cbits
@@ -169,7 +168,6 @@
       scripts
   default-extensions: OverloadedStrings LambdaCase ScopedTypeVariables
   ghc-options: -Wall -Weverything -Wno-safe -Wno-unsafe -Wno-implicit-prelude -Wno-missed-specializations -Wno-all-missed-specializations -Wno-missing-import-lists -Wno-type-defaults -Wno-missing-local-signatures -Wno-monomorphism-restriction -Wno-missing-deriving-strategies -optP-Wno-nonportable-include-path -fhide-source-paths -fno-show-valid-hole-fits -fno-sort-valid-hole-fits
-  cpp-options: -std=c++17
   cxx-options: -std=c++17
   include-dirs:
       cbits
@@ -250,7 +248,6 @@
       tests
   default-extensions: OverloadedStrings LambdaCase ScopedTypeVariables
   ghc-options: -Wall -Weverything -Wno-safe -Wno-unsafe -Wno-implicit-prelude -Wno-missed-specializations -Wno-all-missed-specializations -Wno-missing-import-lists -Wno-type-defaults -Wno-missing-local-signatures -Wno-monomorphism-restriction -Wno-missing-deriving-strategies -optP-Wno-nonportable-include-path -fhide-source-paths -fno-show-valid-hole-fits -fno-sort-valid-hole-fits
-  cpp-options: -std=c++17 -D__EMBEDDED_SOUFFLE__
   cxx-options: -std=c++17 -D__EMBEDDED_SOUFFLE__
   include-dirs:
       cbits
diff --git a/tests/Test/Language/Souffle/Experimental/FixturesCompiled.hs b/tests/Test/Language/Souffle/Experimental/FixturesCompiled.hs
--- a/tests/Test/Language/Souffle/Experimental/FixturesCompiled.hs
+++ b/tests/Test/Language/Souffle/Experimental/FixturesCompiled.hs
@@ -1,4 +1,5 @@
 
+{-# OPTIONS_GHC -optc-std=c++17 -D__EMBEDDED_SOUFFLE__ #-}
 {-# LANGUAGE TypeApplications, TemplateHaskell #-}
 module Test.Language.Souffle.Experimental.FixturesCompiled () where
 
