diff --git a/basis/help/html/html.factor b/basis/help/html/html.factor
index 37cb8a3d19..a911c86ea4 100644
--- a/basis/help/html/html.factor
+++ b/basis/help/html/html.factor
@@ -71,10 +71,10 @@ M: pathname url-of
     swap "\n" glue XML-CHUNK[[  ]] ;
 
 : help-meta ( -- xml )
-    [XML  XML] ;
+        /> ]] ;
 
 : help-navbar ( -- xml )
     "conventions" >link topic>filename
@@ -99,23 +99,23 @@ M: pathname url-of
     dup '[ drop _ assoc-size 1 + bijective-base26 ] cache ;
 
 : css-style ( style -- style' )
-    R/ font-size: \d+pt;/ [
+    re"font-size: \d+pt;" [
         "font-size: " ?head drop "pt;" ?tail drop
         string>number 2 -
         "font-size: %dpt;" sprintf
     ] re-replace-with
 
-    R/ padding: \d+px;/ [
+    re"padding: \d+px;" [
         "padding: " ?head drop "px;" ?tail drop
         string>number dup even? [ 2 * 1 + ] [ 2 * ] if
         number>string "padding: " "px;" surround
     ] re-replace-with
 
-    R/ width: \d+px;/ [
+    re"width: \d+px;" [
        drop ""
     ] re-replace-with
 
-    R/ font-family: monospace;/ [
+    re"font-family: monospace;" [
         " white-space: pre-wrap; line-height: 125%;" append
     ] re-replace-with ;
 
@@ -147,7 +147,7 @@ M: pathname url-of
     [
         [ print-topic ] with-html-writer css-styles-to-classes
         [ help-stylesheet help-meta prepend help-navbar ] dip
-        [XML 
 XML]
+        XML-CHUNK[[  ]]
     ] bi simple-page ;
 
 : generate-help-file ( topic -- )
diff --git a/basis/html/templates/chloe/chloe.factor b/basis/html/templates/chloe/chloe.factor
index 66ae95690b..8c8fd5084c 100644
--- a/basis/html/templates/chloe/chloe.factor
+++ b/basis/html/templates/chloe/chloe.factor
@@ -46,7 +46,7 @@ CHLOE: script
 CHLOE: write-script
     drop [
         get-script
-        [XML  XML]
+        XML-CHUNK[[  ]]
     ] [xml-code] ;
 
 CHLOE: meta
diff --git a/basis/html/templates/templates.factor b/basis/html/templates/templates.factor
index d2b13bed67..b0f895e2a3 100644
--- a/basis/html/templates/templates.factor
+++ b/basis/html/templates/templates.factor
@@ -82,7 +82,7 @@ SYMBOL: meta
 
 : get-meta ( -- xml )
     meta get [
-        [XML  content=<->/> XML]
+        XML-CHUNK[[  content=<->/> ]]
     ] { } assoc>map ;
 
 : write-meta ( -- )
diff --git a/basis/math/matrices/matrices-docs.factor b/basis/math/matrices/matrices-docs.factor
index cd06a673a6..8c4a7e7417 100644
--- a/basis/math/matrices/matrices-docs.factor
+++ b/basis/math/matrices/matrices-docs.factor
@@ -290,7 +290,7 @@ HELP: 
 
 HELP: 
 { $values { "n" integer } { "matrix" matrix } }
-{ $description "Creates an " { $url URL" http://enwp.org/Identity_matrix" "identity matrix" } " of size " { $snippet "n x n" } ", where the diagonal values are all ones." }
+{ $description "Creates an " { $url url"http://enwp.org/Identity_matrix" "identity matrix" } " of size " { $snippet "n x n" } ", where the diagonal values are all ones." }
 { $examples
     { $example
         "USING: math.matrices prettyprint ;"
@@ -377,7 +377,7 @@ HELP: 
 
 HELP: 
 { $values { "n" integer } { "matrix" square-matrix } }
-{ $description "Create a " { $link square-matrix } " full of " { $link cartesian-product } "s. See " { $url URL" https://en.wikipedia.org/wiki/Cartesian_product" "cartesian product" } "." }
+{ $description "Create a " { $link square-matrix } " full of " { $link cartesian-product } "s. See " { $url url"https://en.wikipedia.org/wiki/Cartesian_product" "cartesian product" } "." }
 { $notes
     { $equiv-word-note "square"  }
 }
@@ -434,7 +434,7 @@ HELP: 
 
 HELP: 
 { $values { "object" object } { "m" integer } { "n" integer } { "matrix" matrix } }
-{ $description "Make a lower triangular matrix, where all the values above the main diagonal are " { $snippet "0" } ". " { $snippet "object" } " will be used as the value for the nonzero part of the matrix, while " { $snippet "m" } " and " { $snippet "n" } " are used as the dimensions. The inverse of this word is " { $link  } ". See " { $url URL" https://en.wikipedia.org/wiki/Triangular_matrix" "triangular matrix" } "." }
+{ $description "Make a lower triangular matrix, where all the values above the main diagonal are " { $snippet "0" } ". " { $snippet "object" } " will be used as the value for the nonzero part of the matrix, while " { $snippet "m" } " and " { $snippet "n" } " are used as the dimensions. The inverse of this word is " { $link  } ". See " { $url url"https://en.wikipedia.org/wiki/Triangular_matrix" "triangular matrix" } "." }
 { $examples
     { $example
         "USING: math.matrices prettyprint ;"
@@ -451,7 +451,7 @@ HELP: 
 
 HELP: 
 { $values { "object" object } { "m" integer } { "n" integer } { "matrix" matrix } }
-{ $description "Make an upper triangular matrix, where all the values below the main diagonal are " { $snippet "0" } ". " { $snippet "object" } " will be used as the value for the nonzero part of the matrix, while " { $snippet "m" } " and " { $snippet "n" } " are used as the dimensions. The inverse of this word is " { $link  } ". See " { $url URL" https://en.wikipedia.org/wiki/Triangular_matrix" "triangular matrix" } "." }
+{ $description "Make an upper triangular matrix, where all the values below the main diagonal are " { $snippet "0" } ". " { $snippet "object" } " will be used as the value for the nonzero part of the matrix, while " { $snippet "m" } " and " { $snippet "n" } " are used as the dimensions. The inverse of this word is " { $link  } ". See " { $url url"https://en.wikipedia.org/wiki/Triangular_matrix" "triangular matrix" } "." }
 { $examples
     { $example
         "USING: math.matrices prettyprint ;"
diff --git a/basis/math/matrices/matrices.factor b/basis/math/matrices/matrices.factor
index bedd3fd480..4dfeb1dca3 100644
--- a/basis/math/matrices/matrices.factor
+++ b/basis/math/matrices/matrices.factor
@@ -125,7 +125,7 @@ ALIAS: transpose flip
 
 : unshaped-cols-iota ( matrix -- cols-iota )
   [ first-unsafe length 1 ] keep
-  [ length min ] (each) (each-integer)  ; inline
+  [ length min ] (each) iterate-upto  ; inline
 
 : generic-anti-transpose-unsafe ( cols-iota matrix -- newmatrix )
     [  [ nth-end-unsafe ] with { } map-as ] curry { } map-as ; inline
diff --git a/extra/modern/compiler/compiler.factor b/basis/modern/compiler/compiler.factor
similarity index 100%
rename from extra/modern/compiler/compiler.factor
rename to basis/modern/compiler/compiler.factor
diff --git a/extra/modern/manifest/authors.txt b/basis/modern/manifest/authors.txt
similarity index 100%
rename from extra/modern/manifest/authors.txt
rename to basis/modern/manifest/authors.txt
diff --git a/extra/modern/manifest/manifest.factor b/basis/modern/manifest/manifest.factor
similarity index 100%
rename from extra/modern/manifest/manifest.factor
rename to basis/modern/manifest/manifest.factor
diff --git a/extra/modern/modern-tests.factor b/basis/modern/modern-tests.factor
similarity index 100%
rename from extra/modern/modern-tests.factor
rename to basis/modern/modern-tests.factor
diff --git a/extra/modern/modern.factor b/basis/modern/modern.factor
similarity index 100%
rename from extra/modern/modern.factor
rename to basis/modern/modern.factor
diff --git a/extra/modern/out/authors.txt b/basis/modern/out/authors.txt
similarity index 100%
rename from extra/modern/out/authors.txt
rename to basis/modern/out/authors.txt
diff --git a/extra/modern/out/out.factor b/basis/modern/out/out.factor
similarity index 100%
rename from extra/modern/out/out.factor
rename to basis/modern/out/out.factor
diff --git a/extra/modern/paths/authors.txt b/basis/modern/paths/authors.txt
similarity index 100%
rename from extra/modern/paths/authors.txt
rename to basis/modern/paths/authors.txt
diff --git a/extra/modern/paths/paths.factor b/basis/modern/paths/paths.factor
similarity index 100%
rename from extra/modern/paths/paths.factor
rename to basis/modern/paths/paths.factor
diff --git a/extra/modern/slices/slices-tests.factor b/basis/modern/slices/slices-tests.factor
similarity index 100%
rename from extra/modern/slices/slices-tests.factor
rename to basis/modern/slices/slices-tests.factor
diff --git a/extra/modern/slices/slices.factor b/basis/modern/slices/slices.factor
similarity index 100%
rename from extra/modern/slices/slices.factor
rename to basis/modern/slices/slices.factor
diff --git a/extra/modern/tools/authors.txt b/basis/modern/tools/authors.txt
similarity index 100%
rename from extra/modern/tools/authors.txt
rename to basis/modern/tools/authors.txt
diff --git a/extra/modern/tools/tools.factor b/basis/modern/tools/tools.factor
similarity index 100%
rename from extra/modern/tools/tools.factor
rename to basis/modern/tools/tools.factor
diff --git a/basis/tuple-arrays/tuple-arrays.factor b/basis/tuple-arrays/tuple-arrays.factor
index 8ec1600d7e..f6c37e7b12 100644
--- a/basis/tuple-arrays/tuple-arrays.factor
+++ b/basis/tuple-arrays/tuple-arrays.factor
@@ -1,8 +1,8 @@
 ! Copyright (C) 2009, 2010 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors arrays classes classes.tuple
-classes.tuple.private combinators combinators.smart fry functors
-kernel macros math parser sequences sequences.private ;
+USING: accessors classes classes.tuple classes.tuple.private
+combinators combinators.smart functors2 kernel math sequences
+sequences.private ;
 FROM: inverse => undo ;
 IN: tuple-arrays