Rename internal/cgen/base/core-*
diff --git a/internal/cgen/base/core-private.h b/internal/cgen/base/fundamental-private.h
similarity index 100%
rename from internal/cgen/base/core-private.h
rename to internal/cgen/base/fundamental-private.h
diff --git a/internal/cgen/base/core-public.h b/internal/cgen/base/fundamental-public.h
similarity index 100%
rename from internal/cgen/base/core-public.h
rename to internal/cgen/base/fundamental-public.h
diff --git a/internal/cgen/cgen.go b/internal/cgen/cgen.go
index 3b9ed97..0a04649 100644
--- a/internal/cgen/cgen.go
+++ b/internal/cgen/cgen.go
@@ -253,7 +253,7 @@
 }
 
 func insertBaseAllPrivateH(buf *buffer) error {
-	buf.writes(baseCorePrivateH)
+	buf.writes(baseFundamentalPrivateH)
 	buf.writeb('\n')
 	buf.writes(baseRangePrivateH)
 	buf.writeb('\n')
@@ -271,7 +271,7 @@
 }
 
 func insertBaseAllPublicH(buf *buffer) error {
-	if err := expandBangBangInsert(buf, baseCorePublicH, map[string]func(*buffer) error{
+	if err := expandBangBangInsert(buf, baseFundamentalPublicH, map[string]func(*buffer) error{
 		"// !! INSERT FourCCs.\n": func(b *buffer) error {
 			for _, z := range builtin.FourCCs {
 				b.printf("// %s.\n#define WUFFS_BASE__FOURCC__%s 0x%02X%02X%02X%02X\n\n",
diff --git a/internal/cgen/data.go b/internal/cgen/data.go
index 18e2be7..4f5bce9 100644
--- a/internal/cgen/data.go
+++ b/internal/cgen/data.go
@@ -176,7 +176,7 @@
 	"SCII case (4 or 8 bytes at a time).\n  //\n  // TODO: possibly optimize this by manually inlining the\n  // wuffs_base__utf_8__next calls.\n  size_t original_len = s.len;\n  while (s.len > 0) {\n    wuffs_base__utf_8__next__output o = wuffs_base__utf_8__next(s);\n    if ((o.code_point > 0x7F) && (o.byte_length == 1)) {\n      break;\n    }\n    s.ptr += o.byte_length;\n    s.len -= o.byte_length;\n  }\n  return original_len - s.len;\n}\n\nsize_t  //\nwuffs_base__ascii__longest_valid_prefix(wuffs_base__slice_u8 s) {\n  // TODO: possibly optimize this by checking 4 or 8 bytes at a time.\n  uint8_t* original_ptr = s.ptr;\n  uint8_t* p = s.ptr;\n  uint8_t* q = s.ptr + s.len;\n  for (; (p != q) && ((*p & 0x80) == 0); p++) {\n  }\n  return (size_t)(p - original_ptr);\n}\n" +
 	""
 
-const baseCorePrivateH = "" +
+const baseFundamentalPrivateH = "" +
 	"static inline wuffs_base__empty_struct  //\nwuffs_base__ignore_status(wuffs_base__status z) {\n  return wuffs_base__make_empty_struct();\n}\n\n// WUFFS_BASE__MAGIC is a magic number to check that initializers are called.\n// It's not foolproof, given C doesn't automatically zero memory before use,\n// but it should catch 99.99% of cases.\n//\n// Its (non-zero) value is arbitrary, based on md5sum(\"wuffs\").\n#define WUFFS_BASE__MAGIC ((uint32_t)0x3CCB6C71)\n\n// WUFFS_BASE__DISABLED is a magic number to indicate that a non-recoverable\n// error was previously encountered.\n//\n// Its (non-zero) value is arbitrary, based on md5sum(\"disabled\").\n#define WUFFS_BASE__DISABLED ((uint32_t)0x075AE3D2)\n\n// Denote intentional fallthroughs for -Wimplicit-fallthrough.\n//\n// The order matters here. Clang also defines \"__GNUC__\".\n#if defined(__clang__) && defined(__cplusplus) && (__cplusplus >= 201103L)\n#define WUFFS_BASE__FALLTHROUGH [[clang::fallthrough]]\n#elif !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 7)\n#define WUFFS_BAS" +
 	"E__FALLTHROUGH __attribute__((fallthrough))\n#else\n#define WUFFS_BASE__FALLTHROUGH\n#endif\n\n// Use switch cases for coroutine suspension points, similar to the technique\n// in https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html\n//\n// We use trivial macros instead of an explicit assignment and case statement\n// so that clang-format doesn't get confused by the unusual \"case\"s.\n#define WUFFS_BASE__COROUTINE_SUSPENSION_POINT_0 case 0:;\n#define WUFFS_BASE__COROUTINE_SUSPENSION_POINT(n) \\\n  coro_susp_point = n;                            \\\n  WUFFS_BASE__FALLTHROUGH;                        \\\n  case n:;\n\n#define WUFFS_BASE__COROUTINE_SUSPENSION_POINT_MAYBE_SUSPEND(n) \\\n  if (!status.repr) {                                           \\\n    goto ok;                                                    \\\n  } else if (*status.repr != '$') {                             \\\n    goto exit;                                                  \\\n  }                                                             \\\n  coro_susp_point" +
 	" = n;                                          \\\n  goto suspend;                                                 \\\n  case n:;\n\n// Clang also defines \"__GNUC__\".\n#if defined(__GNUC__)\n#define WUFFS_BASE__LIKELY(expr) (__builtin_expect(!!(expr), 1))\n#define WUFFS_BASE__UNLIKELY(expr) (__builtin_expect(!!(expr), 0))\n#else\n#define WUFFS_BASE__LIKELY(expr) (expr)\n#define WUFFS_BASE__UNLIKELY(expr) (expr)\n#endif\n\n" +
@@ -193,7 +193,7 @@
 	"// ---------------- Slices and Tables (Utility)\n\n#define wuffs_base__utility__empty_slice_u8 wuffs_base__empty_slice_u8\n" +
 	""
 
-const baseCorePublicH = "" +
+const baseFundamentalPublicH = "" +
 	"// ---------------- Fundamentals\n\n// WUFFS_VERSION is the major.minor.patch version, as per https://semver.org/,\n// as a uint64_t. The major number is the high 32 bits. The minor number is the\n// middle 16 bits. The patch number is the low 16 bits. The pre-release label\n// and build metadata are part of the string representation (such as\n// \"1.2.3-beta+456.20181231\") but not the uint64_t representation.\n//\n// WUFFS_VERSION_PRE_RELEASE_LABEL (such as \"\", \"beta\" or \"rc.1\") being\n// non-empty denotes a developer preview, not a release version, and has no\n// backwards or forwards compatibility guarantees.\n//\n// WUFFS_VERSION_BUILD_METADATA_XXX, if non-zero, are the number of commits and\n// the last commit date in the repository used to build this library. Within\n// each major.minor branch, the commit count should increase monotonically.\n//\n// !! Some code generation programs can override WUFFS_VERSION.\n#define WUFFS_VERSION ((uint64_t)0)\n#define WUFFS_VERSION_MAJOR ((uint64_t)0)\n#define WUFFS_VERSION_MINOR ((uint" +
 	"64_t)0)\n#define WUFFS_VERSION_PATCH ((uint64_t)0)\n#define WUFFS_VERSION_PRE_RELEASE_LABEL \"work.in.progress\"\n#define WUFFS_VERSION_BUILD_METADATA_COMMIT_COUNT 0\n#define WUFFS_VERSION_BUILD_METADATA_COMMIT_DATE 0\n#define WUFFS_VERSION_STRING \"0.0.0+0.00000000\"\n\n// Define WUFFS_CONFIG__STATIC_FUNCTIONS to make all of Wuffs' functions have\n// static storage. The motivation is discussed in the \"ALLOW STATIC\n// IMPLEMENTATION\" section of\n// https://raw.githubusercontent.com/nothings/stb/master/docs/stb_howto.txt\n#ifdef WUFFS_CONFIG__STATIC_FUNCTIONS\n#define WUFFS_BASE__MAYBE_STATIC static\n#else\n#define WUFFS_BASE__MAYBE_STATIC\n#endif\n\n" +
 	"" +
diff --git a/internal/cgen/gen.go b/internal/cgen/gen.go
index 9c1d3aa..21a4f6d 100644
--- a/internal/cgen/gen.go
+++ b/internal/cgen/gen.go
@@ -77,8 +77,8 @@
 		{"base/image-impl.c", "baseImageImplC"},
 		{"base/strconv-impl.c", "baseStrConvImplC"},
 
-		{"base/core-private.h", "baseCorePrivateH"},
-		{"base/core-public.h", "baseCorePublicH"},
+		{"base/fundamental-private.h", "baseFundamentalPrivateH"},
+		{"base/fundamental-public.h", "baseFundamentalPublicH"},
 		{"base/memory-private.h", "baseMemoryPrivateH"},
 		{"base/memory-public.h", "baseMemoryPublicH"},
 		{"base/image-private.h", "baseImagePrivateH"},