convert error to type !error
test if value is error ?value
extract error code value!
+
+
+PROBLEM??
+
+ a if c else b
+could have a natural precedence:
+
+ A if C else B if q else a if c else b
+would be
+ A if C else (B if q else (a if c else b))
+Hmm.. not what I imagined. But what I imaging suggested that left-association what
+ a op b op c -> (a op b) op c
+requires that we reduce even when we could shift, ... maybe .... I should leave this
+until I do precedence.