diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,12 @@
 # Revision history for butcher
 
+## 1.3.3.2  -- June 2020
+
+* Support ghc-8.10
+* Drop support for ghc < 8.4
+* Fix a somewhat hidden issue in the cabal file
+* Add support for building / testing via haskell.nix nixpkgs overlay
+
 ## 1.3.3.1  -- April 2020
 
 * Fix a cabal file mistake
diff --git a/butcher.cabal b/butcher.cabal
--- a/butcher.cabal
+++ b/butcher.cabal
@@ -1,5 +1,5 @@
 name:                butcher
-version:             1.3.3.1
+version:             1.3.3.2
 synopsis:            Chops a command or program invocation into digestable pieces.
 description:         See the <https://github.com/lspitzner/butcher/blob/master/README.md README> (it is properly formatted on github).
 license:             BSD3
@@ -37,7 +37,7 @@
   other-modules:       UI.Butcher.Monadic.Internal.Types
                        UI.Butcher.Monadic.Internal.Core
   build-depends:
-    { base >=4.9 && <4.14
+    { base >=4.11 && <4.15
     , free < 5.2
     , unsafe < 0.1
     , microlens <0.5
@@ -111,6 +111,8 @@
   main-is:          TestMain.hs
   other-modules:    
   hs-source-dirs:   src-tests
+  include-dirs:
+    srcinc
   default-extensions: {
     CPP
 
diff --git a/src/UI/Butcher/Monadic/Internal/Core.hs b/src/UI/Butcher/Monadic/Internal/Core.hs
--- a/src/UI/Butcher/Monadic/Internal/Core.hs
+++ b/src/UI/Butcher/Monadic/Internal/Core.hs
@@ -318,6 +318,7 @@
 
 data CmdDescStack = StackBottom (Deque PartDesc)
                   | StackLayer  (Deque PartDesc) String CmdDescStack
+  deriving Show
 
 descStackAdd :: PartDesc -> CmdDescStack -> CmdDescStack
 descStackAdd d = \case
@@ -1023,7 +1024,6 @@
               ++ " with remaining input: "
               ++ show input
             ]
-          failureCurrentShallowRerun
           processParsedParts $ nextF monadMisuseError
         continueOrMisuse :: Maybe p -> m (CmdParser f out a)
         continueOrMisuse = maybe monadMisuseError (processParsedParts . nextF)
@@ -1143,7 +1143,12 @@
       mModify (descStackAdd desc)
       nextF =<< iterM processCmdShallow alt
 
-  failureCurrentShallowRerun
+  -- currently unused; was previously used during failure in
+  -- processParsedParts. Using this leads to duplicated descs, but I fear
+  -- that not using it also leads to certain problems (missing children?).
+  -- Probably want to re-write into proper two-phase 1) obtain desc 2) run
+  -- parser, like the applicative approach.
+  _failureCurrentShallowRerun
     :: ( m ~ MultiRWSS.MultiRWST r w s m0
        , MonadMultiState (CmdParser f out ()) m
        , MonadMultiState (CommandDesc out) m
@@ -1151,7 +1156,7 @@
        , Monad m0
        )
     => m ()
-  failureCurrentShallowRerun = do
+  _failureCurrentShallowRerun = do
     parser :: CmdParser f out () <- mGet
     cmd :: CommandDesc out <-
       MultiRWSS.withMultiStateS emptyCommandDesc
