Something other than numbers and characters has been used for a range. Erroneous code example: ```compile_fail,E0029 let string = "salutations !"; // The ordering relation for strings cannot be evaluated at compile time, // so this doesn't work: match string { "hello" ..= "world" => {} _ => {} } // This is a more general version, using a guard: match string { s if s >= "hello" && s <= "world" => {} _ => {} } ``` In a match expression, only numbers and characters can be matched against a range. This is because the compiler checks that the range is non-empty at compile-time, and is unable to evaluate arbitrary comparison functions. If you want to capture values of an orderable type between two end-points, you can use a guard.