The spec defines keyable types, but the spec is not consistent with the reference implementation, and not even internally consistent.
- Are booleans "keyable"? They're not in the list, but they are in the grammar.
- The spec says
-0 is not allowed (though -0 is defined as a floating-point value, so this rule seems redundant), but enctool allows it, e.g., {0=1 -0=2}.
- I don't see anything in the spec about key equivalence across types, but it seems to be an error in the reference implementation to have both a temporal type and a similar string, e.g.,
{2001-01-01=1 "2001-01-01"=2} or {00:00:00=1 "00:00:00"=2} are errors but {1=1 "1"=2 @"1"=3} is valid. Is this a bug, or is it intended that temporal types (only) can't live next to strings?
The spec defines keyable types, but the spec is not consistent with the reference implementation, and not even internally consistent.
-0is not allowed (though -0 is defined as a floating-point value, so this rule seems redundant), but enctool allows it, e.g.,{0=1 -0=2}.{2001-01-01=1 "2001-01-01"=2}or{00:00:00=1 "00:00:00"=2}are errors but{1=1 "1"=2 @"1"=3}is valid. Is this a bug, or is it intended that temporal types (only) can't live next to strings?