diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,3 +1,5 @@
+<!-- scripths: 0.5.3.0 -->
+
 <!--
   This file is the runnable scripths source for dataframe-viz's README.
   Every ```haskell block executes in order in one shared session against a
@@ -36,15 +38,15 @@
 
 ```haskell
 -- cabal: build-depends: text, aeson
--- cabal: packages: ../../../dataframe-core, ../../../dataframe-parsing
--- cabal: packages: ../../../dataframe-operations, ../../../dataframe-viz
+-- cabal: packages: ../dataframe-core, ../dataframe-parsing
+-- cabal: packages: ../dataframe-operations, ../dataframe-viz
 -- cabal: default-extensions: OverloadedStrings, TypeApplications, OverloadedLabels
 -- cabal: default-extensions: DataKinds, TypeOperators, FlexibleContexts
 import DataFrame.Internal.DataFrame (DataFrame, fromNamedColumns)
 import DataFrame.Internal.Column (fromList)
 import DataFrame.Operators ((|>))
 import qualified DataFrame.Functions as F
-import DataFrame.Typed.Types (Column, TypedDataFrame)
+import DataFrame.Typed.Types (TypedDataFrame)
 import DataFrame.Typed.Freeze (freeze)
 import qualified DataFrame.Typed.Expr as TE
 import Data.Text (Text)
diff --git a/dataframe-viz.cabal b/dataframe-viz.cabal
--- a/dataframe-viz.cabal
+++ b/dataframe-viz.cabal
@@ -1,6 +1,6 @@
 cabal-version:      3.4
 name:               dataframe-viz
-version:            1.3.0.0
+version:            1.3.1.0
 synopsis:           Visualisation/plotting helpers for the dataframe ecosystem.
 description:
     Display harness plus terminal and web plotters. Built on top of
@@ -37,7 +37,7 @@
     build-depends:      base >= 4 && < 5,
                         aeson >= 0.11.0.0 && < 3,
                         containers >= 0.6.7 && < 0.10,
-                        dataframe-core >= 2.2 && < 2.3,
+                        dataframe-core >= 2.4 && < 2.5,
                         directory >= 1.3.0.0 && < 2,
                         granite >= 0.6 && < 1,
                         process ^>= 1.6,
diff --git a/src/DataFrame/Display/Internal/Common.hs b/src/DataFrame/Display/Internal/Common.hs
--- a/src/DataFrame/Display/Internal/Common.hs
+++ b/src/DataFrame/Display/Internal/Common.hs
@@ -51,6 +51,7 @@
     Column (..),
     Columnable,
     isNumeric,
+    materializeMerged,
     materializePacked,
  )
 import DataFrame.Internal.DataFrame (DataFrame (..), getColumn)
@@ -170,6 +171,7 @@
     UnboxedColumn _ vec ->
         V.toList $ VG.map (T.pack . show) (VG.convert vec)
     PackedText _ _ -> columnToStrings (materializePacked col)
+    MergedColumn _ _ -> columnToStrings (materializeMerged col)
 
 -- | Coerce a numeric column to @[Double]@; errors if the element type is not numeric.
 columnToDoubles :: (HasCallStack) => Column -> [Double]
@@ -177,6 +179,7 @@
     BoxedColumn _ vec -> vectorToDoubles vec
     UnboxedColumn _ vec -> unboxedVectorToDoubles vec
     PackedText _ _ -> columnToDoubles (materializePacked col)
+    MergedColumn _ _ -> columnToDoubles (materializeMerged col)
 
 vectorToDoubles :: forall a. (Columnable a, Show a) => V.Vector a -> [Double]
 vectorToDoubles vec =
@@ -214,6 +217,9 @@
                     UnboxedColumn _ (vec :: VU.Vector a) ->
                         Just (countUnboxed (typeRep @a) vec)
                     PackedText _ _ -> case materializePacked col of
+                        BoxedColumn _ (vec :: V.Vector a) -> Just (countBoxed (typeRep @a) vec)
+                        _ -> Nothing
+                    MergedColumn _ _ -> case materializeMerged col of
                         BoxedColumn _ (vec :: V.Vector a) -> Just (countBoxed (typeRep @a) vec)
                         _ -> Nothing
   where
