diff --git a/bizzlelude.cabal b/bizzlelude.cabal
--- a/bizzlelude.cabal
+++ b/bizzlelude.cabal
@@ -1,7 +1,7 @@
+Cabal-Version:       3.0
 Name:                bizzlelude
-Version:             1.6.0
-Cabal-version:       1.22
-License:             BSD3
+Version:             1.7.0
+License:             BSD-3-Clause
 License-File:        LICENSE.txt
 Author:              Jason Bertsche
 Maintainer:          jason.bertsche@gmail.com
@@ -32,8 +32,8 @@
     -fno-warn-name-shadowing
     -funbox-strict-fields
   Build-depends:
-    base-noprelude >= 4.8    && < 5,
-    containers     >= 0.5.11 && < 0.6.0,
-    directory      >= 1.3.2  && < 1.4.0,
+    base-noprelude >= 4.13   && < 5,
+    containers     >= 0.6.2  && < 0.7.0,
+    directory      >= 1.3.6  && < 1.4.0,
     regexpr        >= 0.5.4  && < 0.6.0,
-    text           >= 1.2.3  && < 1.3.0
+    text           >= 1.2.4  && < 1.3.0
diff --git a/src/main/External.hs b/src/main/External.hs
--- a/src/main/External.hs
+++ b/src/main/External.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE NoImplicitPrelude #-}
-module External(module Control.Arrow, module Control.Applicative, module Control.Monad, module Control.Monad.IO.Class, module Data.Bifunctor, module Data.Bool, module Data.Char, module Data.Either, module Data.Eq, module Data.Foldable, module Data.Function, module Data.Functor, module Data.Int, module Data.IntSet, module Data.Map, module Data.Maybe, module Data.Monoid, module Data.Ord, module Data.Semigroup, module Data.Set, module Data.Text, module Data.Tuple, module Debug.Trace, module GHC.Base, module GHC.Enum, module GHC.Err, module GHC.Float, module GHC.IO, module GHC.Num, module GHC.Real, module GHC.Show, module Numeric, module System.IO.Error, module Text.Read) where
+module External(module Control.Arrow, module Control.Applicative, module Control.Monad, module Control.Monad.IO.Class, module Data.Bifunctor, module Data.Bool, module Data.Char, module Data.Either, module Data.Eq, module Data.Foldable, module Data.Function, module Data.Functor, module Data.Int, module Data.IntSet, module Data.Map, module Data.Maybe, module Data.Monoid, module Data.Ord, module Data.Semigroup, module Data.Set, module Data.Text, module Data.Traversable, module Data.Tuple, module Debug.Trace, module GHC.Base, module GHC.Enum, module GHC.Err, module GHC.Float, module GHC.IO, module GHC.Num, module GHC.Real, module GHC.Show, module Numeric, module System.IO.Error, module Text.Read) where
 
 import Control.Arrow((&&&), (***))
 import Control.Applicative(Alternative((<|>)), Applicative((<*>), (<*), (*>), pure))
@@ -23,6 +23,7 @@
 import Data.Semigroup(Semigroup((<>)))
 import Data.Set(Set)
 import Data.Text(lines, Text, unlines, unwords, words)
+import Data.Traversable(traverse)
 import Data.Tuple(curry, fst, snd, swap, uncurry)
 
 import Debug.Trace(trace, traceEvent, traceEventIO, traceId, traceIO, traceM, traceMarker, traceMarkerIO, traceShow, traceShowId, traceShowM, traceStack)
