diff --git a/internal/cgen/builtin.go b/internal/cgen/builtin.go
index 596b4aa..37ffb5e 100644
--- a/internal/cgen/builtin.go
+++ b/internal/cgen/builtin.go
@@ -328,7 +328,7 @@
 		b.printf(", ((uint64_t)(%s%s - %s%s)))", iopPrefix, name, io0Prefix, name)
 		return nil
 
-	case t.IDHistoryAvailable, t.IDMark:
+	case t.IDHistoryLength, t.IDMark:
 		b.printf("((uint64_t)(%s%s - %s%s))", iopPrefix, name, io0Prefix, name)
 		return nil
 
diff --git a/lang/builtin/builtin.go b/lang/builtin/builtin.go
index c0e2d23..ed29f3e 100644
--- a/lang/builtin/builtin.go
+++ b/lang/builtin/builtin.go
@@ -446,7 +446,7 @@
 	"io_writer.write_u64le_fast!(a: u64)",
 
 	"io_writer.count_since(mark: u64) u64",
-	"io_writer.history_available() u64",
+	"io_writer.history_length() u64",
 	"io_writer.length() u64",
 	"io_writer.mark() u64",
 	"io_writer.position() u64",
diff --git a/lang/check/bounds.go b/lang/check/bounds.go
index 13eacb1..17b4509 100644
--- a/lang/check/bounds.go
+++ b/lang/check/bounds.go
@@ -1122,7 +1122,7 @@
 	// As per cgen's io-private.h, there are three pre-conditions:
 	//  - n <= this.length()
 	//  - distance > 0
-	//  - distance <= this.history_available()
+	//  - distance <= this.history_length()
 
 	if len(args) != 2 {
 		return fmt.Errorf("check: internal error: inconsistent copy_n_from_history_fast arguments")
@@ -1180,7 +1180,7 @@
 		return fmt.Errorf("check: could not prove distance > 0")
 	}
 
-	// Check "distance <= this.history_available()".
+	// Check "distance <= this.history_length()".
 check2:
 	for {
 		for _, x := range q.facts {
@@ -1198,9 +1198,9 @@
 				continue
 			}
 
-			// Check that the RHS is "recv.history_available()".
+			// Check that the RHS is "recv.history_length()".
 			y, method, yArgs := splitReceiverMethodArgs(x.RHS().AsExpr())
-			if method != t.IDHistoryAvailable || len(yArgs) != 0 {
+			if method != t.IDHistoryLength || len(yArgs) != 0 {
 				continue
 			}
 			if !y.Eq(recv) {
@@ -1209,7 +1209,7 @@
 
 			break check2
 		}
-		return fmt.Errorf("check: could not prove distance <= %s.history_available()", recv.Str(q.tm))
+		return fmt.Errorf("check: could not prove distance <= %s.history_length()", recv.Str(q.tm))
 	}
 
 	return nil
diff --git a/lang/token/list.go b/lang/token/list.go
index e6a754e..72a60ec 100644
--- a/lang/token/list.go
+++ b/lang/token/list.go
@@ -503,19 +503,19 @@
 
 	IDDecodeFrameOptions = ID(0x158)
 
-	IDCanUndoByte      = ID(0x160)
-	IDCountSince       = ID(0x161)
-	IDHistoryAvailable = ID(0x162)
-	IDIsClosed         = ID(0x163)
-	IDMark             = ID(0x164)
-	IDMatch15          = ID(0x165)
-	IDMatch31          = ID(0x166)
-	IDMatch7           = ID(0x167)
-	IDPosition         = ID(0x168)
-	IDSince            = ID(0x169)
-	IDSkip             = ID(0x16A)
-	IDSkipU32          = ID(0x16B)
-	IDSkipU32Fast      = ID(0x16C)
+	IDCanUndoByte   = ID(0x160)
+	IDCountSince    = ID(0x161)
+	IDHistoryLength = ID(0x162)
+	IDIsClosed      = ID(0x163)
+	IDMark          = ID(0x164)
+	IDMatch15       = ID(0x165)
+	IDMatch31       = ID(0x166)
+	IDMatch7        = ID(0x167)
+	IDPosition      = ID(0x168)
+	IDSince         = ID(0x169)
+	IDSkip          = ID(0x16A)
+	IDSkipU32       = ID(0x16B)
+	IDSkipU32Fast   = ID(0x16C)
 
 	IDCopyFromSlice                 = ID(0x170)
 	IDLimitedCopyU32FromHistory     = ID(0x171)
@@ -870,19 +870,19 @@
 
 	IDDecodeFrameOptions: "decode_frame_options",
 
-	IDCanUndoByte:      "can_undo_byte",
-	IDCountSince:       "count_since",
-	IDHistoryAvailable: "history_available",
-	IDIsClosed:         "is_closed",
-	IDMark:             "mark",
-	IDMatch15:          "match15",
-	IDMatch31:          "match31",
-	IDMatch7:           "match7",
-	IDPosition:         "position",
-	IDSince:            "since",
-	IDSkip:             "skip",
-	IDSkipU32:          "skip_u32",
-	IDSkipU32Fast:      "skip_u32_fast",
+	IDCanUndoByte:   "can_undo_byte",
+	IDCountSince:    "count_since",
+	IDHistoryLength: "history_length",
+	IDIsClosed:      "is_closed",
+	IDMark:          "mark",
+	IDMatch15:       "match15",
+	IDMatch31:       "match31",
+	IDMatch7:        "match7",
+	IDPosition:      "position",
+	IDSince:         "since",
+	IDSkip:          "skip",
+	IDSkipU32:       "skip_u32",
+	IDSkipU32Fast:   "skip_u32_fast",
 
 	IDCopyFromSlice:                 "copy_from_slice",
 	IDLimitedCopyU32FromHistory:     "limited_copy_u32_from_history",
diff --git a/std/deflate/decode_huffman_fast.wuffs b/std/deflate/decode_huffman_fast.wuffs
index fce0b9c..22260cb 100644
--- a/std/deflate/decode_huffman_fast.wuffs
+++ b/std/deflate/decode_huffman_fast.wuffs
@@ -290,12 +290,12 @@
 			pre args.dst.length() >= 258,
 		{
 			// Copy from this.history.
-			if ((dist_minus_1 + 1) as base.u64) > args.dst.history_available() {
+			if ((dist_minus_1 + 1) as base.u64) > args.dst.history_length() {
 				// Set (hlen, hdist) to be the length-distance pair to copy
 				// from this.history, and (length, distance) to be the
 				// remaining length-distance pair to copy from args.dst.
 				hlen = 0
-				hdist = (((dist_minus_1 + 1) as base.u64) - args.dst.history_available()) as base.u32
+				hdist = (((dist_minus_1 + 1) as base.u64) - args.dst.history_length()) as base.u32
 				if length > hdist {
 					assert hdist < length via "a < b: b > a"()
 					assert hdist < 0x8000 via "a < b: a < c; c <= b"(c: length)
@@ -325,12 +325,12 @@
 					continue.loop
 				}
 
-				if ((dist_minus_1 + 1) as base.u64) > args.dst.history_available() {
+				if ((dist_minus_1 + 1) as base.u64) > args.dst.history_length() {
 					return "#internal error: inconsistent distance"
 				}
 			}
 			// Once again, redundant but explicit assertions.
-			assert ((dist_minus_1 + 1) as base.u64) <= args.dst.history_available()
+			assert ((dist_minus_1 + 1) as base.u64) <= args.dst.history_length()
 			assert args.dst.length() >= 258
 
 			// We can therefore prove:
diff --git a/std/deflate/decode_huffman_slow.wuffs b/std/deflate/decode_huffman_slow.wuffs
index 044aa35..48568b8 100644
--- a/std/deflate/decode_huffman_slow.wuffs
+++ b/std/deflate/decode_huffman_slow.wuffs
@@ -203,11 +203,11 @@
 
 		while true {
 			// Copy from this.history.
-			if ((dist_minus_1 + 1) as base.u64) > args.dst.history_available() {
+			if ((dist_minus_1 + 1) as base.u64) > args.dst.history_length() {
 				// Set (hlen, hdist) to be the length-distance pair to copy
 				// from this.history, and (length, distance) to be the
 				// remaining length-distance pair to copy from args.dst.
-				hdist = (((dist_minus_1 + 1) as base.u64) - args.dst.history_available()) as base.u32
+				hdist = (((dist_minus_1 + 1) as base.u64) - args.dst.history_length()) as base.u32
 				if length > hdist {
 					assert hdist < length via "a < b: b > a"()
 					assert hdist < 0x8000 via "a < b: a < c; c <= b"(c: length)
