doc/ref: remove some unimplemented aspects of the spec

Can be added back in when/if implemented

Change-Id: Ibe6c56acf21e523b91e3ead5de3471779fc376e9
diff --git a/doc/ref/spec.md b/doc/ref/spec.md
index 168b115..574dc68 100644
--- a/doc/ref/spec.md
+++ b/doc/ref/spec.md
@@ -272,10 +272,10 @@
 +    &     &&    ==    !=    (    )
 -    |     ||    <     <=    [    ]
 *    :     !     >     >=    {    }
-/    ::    ;     =     ...   ..   .
+/          ;     =     ...   ..   .
 div  mod   quo   rem   _|_   <-   ,
 ```
-
+<!-- :: for "is-a" definitions -->
 
 ### Integer literals
 
@@ -296,13 +296,13 @@
 decimals  = ( "0" … "9" ) { [ "_" ] decimal_digit } .
 decimal_lit = ( "1" … "9" ) { [ "_" ] decimal_digit } [ [ "." decimals ] multiplier ] |
             "." decimals multiplier.
-octal_lit   = "0" octal_digit { [ "_" ] octal_digit } .
 binary_lit  = "0b" binary_digit { binary_digit } .
 hex_lit     = "0" ( "x" | "X" ) hex_digit { [ "_" ] hex_digit } .
 multiplier  = ( "K" | "M" | "G" | "T" | "P" | "E" | "Y" | "Z" ) [ "i" ]
 ```
-<!-- TODO(mpvl): implement "K" instead of "k" -->
+
 <!--
+octal_lit   = "0" octal_digit { [ "_" ] octal_digit } .
 TODO: consider 0o766 notation for octal.
 --->
 
@@ -427,21 +427,18 @@
 ```
 
 ```
-`abc`                // same as "abc"
-`\n
-\n`                  // same as "\\n\n\\n"
 'a\000\xab'
 '\007'
 '\377'
 '\xa'        // illegal: too few hexadecimal digits
 "\n"
-"\""                 // same as `"`
+"\""
 'Hello, world!\n'
 "Hello, \( name )!"
 "日本語"
 "\u65e5本\U00008a9e"
 "\xff\u00FF"
-"\uD800"             // illegal: surrogate half
+"\uD800"             // illegal: surrogate half (TODO: probably should allow)
 "\U00110000"         // illegal: invalid Unicode code point
 ```
 
@@ -1213,10 +1210,12 @@
 Primary expressions are the operands for unary and binary expressions.
 A default expression is only valid as an operand to a disjunction.
 
+<!-- TODO(mpvl)
+	Conversion |
+-->
 ```
 PrimaryExpr =
 	Operand |
-	Conversion |
 	Preference |
 	PrimaryExpr Selector |
 	PrimaryExpr Index |
@@ -1684,6 +1683,7 @@
 Implementation restriction: A compiler may use rounding while computing untyped floating-point or complex constant expressions; see the implementation restriction in the section on constants. This rounding may cause a floating-point constant expression to be invalid in an integer context, even if it would be integral when calculated using infinite precision, and vice versa.
 -->
 
+<!--- TODO(mpvl): conversions
 ### Conversions
 Conversions are expressions of the form `T(x)` where `T` and `x` are
 expressions.
@@ -1692,7 +1692,7 @@
 ```
 Conversion = Expression "(" Expression [ "," ] ")" .
 ```
-
+--->
 <!---
 
 A literal value `x` can be converted to type T if `x` is representable by a
@@ -1718,6 +1718,7 @@
 string(65.0)             // illegal: 65.0 is not an integer constant
 ```
 --->
+<!---
 
 A conversion is always allowed if `x` is an instance of `T`.
 
@@ -1770,7 +1771,6 @@
 bytes("")        // ''
 ```
 
-<!---
 #### Conversions between list types
 
 Conversions between list types are possible only if `T` strictly subsumes `x`
@@ -1784,7 +1784,6 @@
 IP:        4*[byte]
 Private10: IP([10, ...])  // [10, byte, byte, byte]
 ```
---->
 
 #### Conversions between struct types
 
@@ -1796,7 +1795,10 @@
   the result of the conversion, recursively.
 
 <!-- jba: I don't think you say anywhere that the matching fields are unified.
+mpvl: they are not, x must be an instance of T, in which case x == T&x,
+so unification would be unnecessary.
 -->
+<!-->
 ```
 T: {
     a: { b: 1..10 }
@@ -1811,7 +1813,7 @@
 c2: T({})             // _|_  // missing field 'a' in '{}'
 c3: T({ a: {b: 0} })  // _|_  // field a.b does not unify (0 & 1..10)
 ```
-
+-->
 
 ### Calls