diff --git a/dataframe-csv.cabal b/dataframe-csv.cabal
--- a/dataframe-csv.cabal
+++ b/dataframe-csv.cabal
@@ -1,6 +1,6 @@
 cabal-version:      3.4
 name:               dataframe-csv
-version:            2.2.0.0
+version:            2.3.0.0
 synopsis:           CSV reader and writer for the dataframe ecosystem.
 description:
     @DataFrame.IO.CSV@ — strict single-pass CSV read/write (pure
@@ -39,9 +39,9 @@
     build-depends:      base >= 4 && < 5,
                         bytestring >= 0.11 && < 0.14,
                         containers >= 0.6.7 && < 0.10,
-                        dataframe-core >= 2.1 && < 2.2,
-                        dataframe-operations >= 2.1 && < 2.2,
-                        dataframe-parsing >= 2.1 && < 2.2,
+                        dataframe-core >= 2.2 && < 2.3,
+                        dataframe-operations >= 2.2 && < 2.3,
+                        dataframe-parsing >= 2.2 && < 2.3,
                         text >= 2.1 && < 3,
                         time >= 1.12 && < 2,
                         vector >= 0.13 && < 0.15
diff --git a/src/DataFrame/Typed/IO/CSV.hs b/src/DataFrame/Typed/IO/CSV.hs
--- a/src/DataFrame/Typed/IO/CSV.hs
+++ b/src/DataFrame/Typed/IO/CSV.hs
@@ -9,7 +9,7 @@
 declares and never infer a type the schema already knows.
 
 @
-type Customer = '[Column \"customer_id\" Int, Column \"customer_name\" Text]
+type Customer = '[ '(\"customer_id\", Int), '(\"customer_name\", Text)]
 
 customers <- readCsv \@Customer \"customers.csv\"  -- reads 2 columns, whatever
                                                  -- else the file holds
@@ -55,7 +55,7 @@
 
 ==== __Example__
 @
-ghci> type Customer = '[Column \"id\" Int, Column \"name\" Text]
+ghci> type Customer = '[ '(\"id\", Int), '(\"name\", Text)]
 ghci> customers <- readCsv \@Customer \"customers.csv\"
 @
 -}
