Index: tests/Makefile.am
===================================================================
--- tests/Makefile.am	(revision 3f631d63dc8a3d8d5bd5e664c971d336878cb507)
+++ tests/Makefile.am	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
@@ -288,10 +288,58 @@
 	-cp ${test} ${abspath ${@}}
 
+collections/string-operator-ERR01 : collections/string-operator.cfa
+	${CFACOMPILE_SYNTAX} -DTRY_MR01
+	-cp ${test} ${abspath ${@}}
+
+collections/string-operator-ERR02 : collections/string-operator.cfa
+	${CFACOMPILE_SYNTAX} -DTRY_MR02
+	-cp ${test} ${abspath ${@}}
+
+collections/string-operator-ERR03 : collections/string-operator.cfa
+	${CFACOMPILE_SYNTAX} -DTRY_MR03
+	-cp ${test} ${abspath ${@}}
+
+collections/string-operator-ERR04 : collections/string-operator.cfa
+	${CFACOMPILE_SYNTAX} -DTRY_MR04
+	-cp ${test} ${abspath ${@}}
+
+collections/string-operator-ERR05 : collections/string-operator.cfa
+	${CFACOMPILE_SYNTAX} -DTRY_MR05
+	-cp ${test} ${abspath ${@}}
+
+collections/string-operator-ERR06 : collections/string-operator.cfa
+	${CFACOMPILE_SYNTAX} -DTRY_MR06
+	-cp ${test} ${abspath ${@}}
+
+collections/string-operator-ERR07 : collections/string-operator.cfa
+	${CFACOMPILE_SYNTAX} -DTRY_MR07
+	-cp ${test} ${abspath ${@}}
+
+collections/string-operator-ERR08 : collections/string-operator.cfa
+	${CFACOMPILE_SYNTAX} -DTRY_MR08
+	-cp ${test} ${abspath ${@}}
+
 collections/string-operator-ERR09 : collections/string-operator.cfa
 	${CFACOMPILE_SYNTAX} -DTRY_MR09
 	-cp ${test} ${abspath ${@}}
 
+collections/string-operator-ERR10 : collections/string-operator.cfa
+	${CFACOMPILE_SYNTAX} -DTRY_MR10
+	-cp ${test} ${abspath ${@}}
+
+collections/string-operator-ERR11 : collections/string-operator.cfa
+	${CFACOMPILE_SYNTAX} -DTRY_MR11
+	-cp ${test} ${abspath ${@}}
+
+collections/string-operator-ERR13 : collections/string-operator.cfa
+	${CFACOMPILE_SYNTAX} -DTRY_MR13
+	-cp ${test} ${abspath ${@}}
+
 collections/string-operator-ERR15 : collections/string-operator.cfa
 	${CFACOMPILE_SYNTAX} -DTRY_MR15
+	-cp ${test} ${abspath ${@}}
+
+collections/string-operator-ERR16 : collections/string-operator.cfa
+	${CFACOMPILE_SYNTAX} -DTRY_MR16
 	-cp ${test} ${abspath ${@}}
 
Index: tests/collections/.expect/string-operator-ERR01.txt
===================================================================
--- tests/collections/.expect/string-operator-ERR01.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
+++ tests/collections/.expect/string-operator-ERR01.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
@@ -0,0 +1,139 @@
+collections/string-operator.cfa:139:1 error: Cannot choose between 2 alternatives for expression
+Applying untyped:
+  Name: ?{}
+...to:
+  Generated Cast of:
+    Variable Expression: s: instance of struct string with body
+    ... with resolved type:
+      instance of struct string with body
+  ... to:
+    reference to instance of struct string with body
+  ... with resolved type:
+    reference to instance of struct string with body
+  Applying untyped:
+    Name: ?+?
+  ...to:
+    Constant Expression ('a': char)
+    ... with resolved type:
+      char
+    Constant Expression ('b': char)
+    ... with resolved type:
+      char
+
+ Alternatives are:
+Cost ( 0, 0, 0, 0, 0, 0, 0, 1 ): Application of
+      Variable Expression: ?{}: function
+      ... with parameters
+        reference to instance of struct string with body
+        char
+      ... returning nothing
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          reference to instance of struct string with body
+          char
+        ... returning nothing
+
+      ... to arguments
+      Generated Cast of:
+        Variable Expression: s: instance of struct string with body
+        ... with resolved type:
+          instance of struct string with body
+      ... to:
+        reference to instance of struct string with body
+      ... with resolved type:
+        reference to instance of struct string with body
+      Application of
+        Variable Expression: ?+?: function
+        ... with parameters
+          char
+          char
+        ... returning
+          char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            char
+            char
+          ... returning
+            char
+
+        ... to arguments
+        Constant Expression ('a': char)
+        ... with resolved type:
+          char
+        Constant Expression ('b': char)
+        ... with resolved type:
+          char
+
+      ... with resolved type:
+        char
+
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:
+
+Cost ( 0, 0, 0, 0, 0, 0, 0, 1 ): Application of
+      Variable Expression: ?{}: function
+      ... with parameters
+        reference to instance of struct string with body
+        instance of struct string with body
+      ... returning nothing
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          reference to instance of struct string with body
+          instance of struct string with body
+        ... returning nothing
+
+      ... to arguments
+      Generated Cast of:
+        Variable Expression: s: instance of struct string with body
+        ... with resolved type:
+          instance of struct string with body
+      ... to:
+        reference to instance of struct string with body
+      ... with resolved type:
+        reference to instance of struct string with body
+      Application of
+        Variable Expression: ?+?: function
+        ... with parameters
+          char
+          char
+        ... returning
+          instance of struct string with body
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            char
+            char
+          ... returning
+            instance of struct string with body
+
+        ... to arguments
+        Constant Expression ('a': char)
+        ... with resolved type:
+          char
+        Constant Expression ('b': char)
+        ... with resolved type:
+          char
+
+      ... with resolved type:
+        instance of struct string with body
+
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:
+
+
+collections/string-operator.cfa:139:1 error: No alternatives for expression Name: s
Index: tests/collections/.expect/string-operator-ERR02.txt
===================================================================
--- tests/collections/.expect/string-operator-ERR02.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
+++ tests/collections/.expect/string-operator-ERR02.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
@@ -0,0 +1,126 @@
+collections/string-operator.cfa:151:1 error: Cannot choose between 2 alternatives for expression
+Applying untyped:
+  Name: ?+?
+...to:
+  Applying untyped:
+    Name: ?+?
+  ...to:
+    Constant Expression ('a': char)
+    ... with resolved type:
+      char
+    Constant Expression ('b': char)
+    ... with resolved type:
+      char
+
+  Name: s0
+ Alternatives are:
+Cost ( 0, 0, 0, 0, 0, 0, 0, 0 ): Application of
+      Variable Expression: ?+?: function
+      ... with parameters
+        char
+        instance of struct string with body
+      ... returning
+        instance of struct string with body
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          char
+          instance of struct string with body
+        ... returning
+          instance of struct string with body
+
+      ... to arguments
+      Application of
+        Variable Expression: ?+?: function
+        ... with parameters
+          char
+          char
+        ... returning
+          char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            char
+            char
+          ... returning
+            char
+
+        ... to arguments
+        Constant Expression ('a': char)
+        ... with resolved type:
+          char
+        Constant Expression ('b': char)
+        ... with resolved type:
+          char
+
+      ... with resolved type:
+        char
+      Variable Expression: s0: instance of struct string with body
+      ... with resolved type:
+        instance of struct string with body
+
+    ... with resolved type:
+      instance of struct string with body
+  (types:
+    instance of struct string with body
+  )
+  Environment:
+
+Cost ( 0, 0, 0, 0, 0, 0, 0, 0 ): Application of
+      Variable Expression: ?+?: function
+      ... with parameters
+        instance of struct string with body
+        instance of struct string with body
+      ... returning
+        instance of struct string with body
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          instance of struct string with body
+          instance of struct string with body
+        ... returning
+          instance of struct string with body
+
+      ... to arguments
+      Application of
+        Variable Expression: ?+?: function
+        ... with parameters
+          char
+          char
+        ... returning
+          instance of struct string with body
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            char
+            char
+          ... returning
+            instance of struct string with body
+
+        ... to arguments
+        Constant Expression ('a': char)
+        ... with resolved type:
+          char
+        Constant Expression ('b': char)
+        ... with resolved type:
+          char
+
+      ... with resolved type:
+        instance of struct string with body
+      Variable Expression: s0: instance of struct string with body
+      ... with resolved type:
+        instance of struct string with body
+
+    ... with resolved type:
+      instance of struct string with body
+  (types:
+    instance of struct string with body
+  )
+  Environment:
+
+
+collections/string-operator.cfa:151:1 error: No alternatives for expression Name: s
Index: tests/collections/.expect/string-operator-ERR03.txt
===================================================================
--- tests/collections/.expect/string-operator-ERR03.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
+++ tests/collections/.expect/string-operator-ERR03.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
@@ -0,0 +1,149 @@
+collections/string-operator.cfa:181:1 error: Cannot choose between 2 alternatives for expression
+Applying untyped:
+  Name: ?{}
+...to:
+  Generated Cast of:
+    Variable Expression: s: instance of struct string with body
+    ... with resolved type:
+      instance of struct string with body
+  ... to:
+    reference to instance of struct string with body
+  ... with resolved type:
+    reference to instance of struct string with body
+  Applying untyped:
+    Name: ?*?
+  ...to:
+    Constant Expression ('a': char)
+    ... with resolved type:
+      char
+    Constant Expression (3: signed int)
+    ... with resolved type:
+      signed int
+
+ Alternatives are:
+Cost ( 0, 0, 0, 2, 0, 0, 0, 1 ): Application of
+      Variable Expression: ?{}: function
+      ... with parameters
+        reference to instance of struct string with body
+        instance of struct string with body
+      ... returning nothing
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          reference to instance of struct string with body
+          instance of struct string with body
+        ... returning nothing
+
+      ... to arguments
+      Generated Cast of:
+        Variable Expression: s: instance of struct string with body
+        ... with resolved type:
+          instance of struct string with body
+      ... to:
+        reference to instance of struct string with body
+      ... with resolved type:
+        reference to instance of struct string with body
+      Application of
+        Variable Expression: ?*?: function
+        ... with parameters
+          char
+          signed long long int
+        ... returning
+          instance of struct string with body
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            char
+            signed long long int
+          ... returning
+            instance of struct string with body
+
+        ... to arguments
+        Constant Expression ('a': char)
+        ... with resolved type:
+          char
+        Generated Cast of:
+          Constant Expression (3: signed int)
+          ... with resolved type:
+            signed int
+        ... to:
+          signed long long int
+        ... with resolved type:
+          signed long long int
+
+      ... with resolved type:
+        instance of struct string with body
+
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:
+
+Cost ( 0, 0, 0, 2, 0, 0, 0, 1 ): Application of
+      Variable Expression: ?{}: static inline function
+      ... with parameters
+        reference to instance of struct string with body
+        signed int
+      ... returning nothing
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          reference to instance of struct string with body
+          signed int
+        ... returning nothing
+
+      ... to arguments
+      Generated Cast of:
+        Variable Expression: s: instance of struct string with body
+        ... with resolved type:
+          instance of struct string with body
+      ... to:
+        reference to instance of struct string with body
+      ... with resolved type:
+        reference to instance of struct string with body
+      Application of
+        Variable Expression: ?*?: function
+        ... with parameters
+          signed int
+          signed int
+        ... returning
+          signed int
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            signed int
+            signed int
+          ... returning
+            signed int
+
+        ... to arguments
+        Generated Cast of:
+          Constant Expression ('a': char)
+          ... with resolved type:
+            char
+        ... to:
+          signed int
+        ... with resolved type:
+          signed int
+        Constant Expression (3: signed int)
+        ... with resolved type:
+          signed int
+
+      ... with resolved type:
+        signed int
+
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:
+
+
+collections/string-operator.cfa:181:1 error: No alternatives for expression Name: s
Index: tests/collections/.expect/string-operator-ERR04.txt
===================================================================
--- tests/collections/.expect/string-operator-ERR04.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
+++ tests/collections/.expect/string-operator-ERR04.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
@@ -0,0 +1,149 @@
+collections/string-operator.cfa:191:1 error: Cannot choose between 2 alternatives for expression
+Applying untyped:
+  Name: ?{}
+...to:
+  Generated Cast of:
+    Variable Expression: s: instance of struct string with body
+    ... with resolved type:
+      instance of struct string with body
+  ... to:
+    reference to instance of struct string with body
+  ... with resolved type:
+    reference to instance of struct string with body
+  Applying untyped:
+    Name: ?*?
+  ...to:
+    Constant Expression (3: signed int)
+    ... with resolved type:
+      signed int
+    Constant Expression ('a': char)
+    ... with resolved type:
+      char
+
+ Alternatives are:
+Cost ( 0, 0, 0, 2, 0, 0, 0, 1 ): Application of
+      Variable Expression: ?{}: function
+      ... with parameters
+        reference to instance of struct string with body
+        instance of struct string with body
+      ... returning nothing
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          reference to instance of struct string with body
+          instance of struct string with body
+        ... returning nothing
+
+      ... to arguments
+      Generated Cast of:
+        Variable Expression: s: instance of struct string with body
+        ... with resolved type:
+          instance of struct string with body
+      ... to:
+        reference to instance of struct string with body
+      ... with resolved type:
+        reference to instance of struct string with body
+      Application of
+        Variable Expression: ?*?: static inline function
+        ... with parameters
+          signed long long int
+          char
+        ... returning
+          instance of struct string with body
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            signed long long int
+            char
+          ... returning
+            instance of struct string with body
+
+        ... to arguments
+        Generated Cast of:
+          Constant Expression (3: signed int)
+          ... with resolved type:
+            signed int
+        ... to:
+          signed long long int
+        ... with resolved type:
+          signed long long int
+        Constant Expression ('a': char)
+        ... with resolved type:
+          char
+
+      ... with resolved type:
+        instance of struct string with body
+
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:
+
+Cost ( 0, 0, 0, 2, 0, 0, 0, 1 ): Application of
+      Variable Expression: ?{}: static inline function
+      ... with parameters
+        reference to instance of struct string with body
+        signed int
+      ... returning nothing
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          reference to instance of struct string with body
+          signed int
+        ... returning nothing
+
+      ... to arguments
+      Generated Cast of:
+        Variable Expression: s: instance of struct string with body
+        ... with resolved type:
+          instance of struct string with body
+      ... to:
+        reference to instance of struct string with body
+      ... with resolved type:
+        reference to instance of struct string with body
+      Application of
+        Variable Expression: ?*?: function
+        ... with parameters
+          signed int
+          signed int
+        ... returning
+          signed int
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            signed int
+            signed int
+          ... returning
+            signed int
+
+        ... to arguments
+        Constant Expression (3: signed int)
+        ... with resolved type:
+          signed int
+        Generated Cast of:
+          Constant Expression ('a': char)
+          ... with resolved type:
+            char
+        ... to:
+          signed int
+        ... with resolved type:
+          signed int
+
+      ... with resolved type:
+        signed int
+
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:
+
+
+collections/string-operator.cfa:191:1 error: No alternatives for expression Name: s
Index: tests/collections/.expect/string-operator-ERR05.txt
===================================================================
--- tests/collections/.expect/string-operator-ERR05.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
+++ tests/collections/.expect/string-operator-ERR05.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
@@ -0,0 +1,135 @@
+collections/string-operator.cfa:207:1 error: Cannot choose between 2 alternatives for expression
+Applying untyped:
+  Name: ?=?
+...to:
+  Name: s
+  Applying untyped:
+    Name: ?+?
+  ...to:
+    Constant Expression ('a': char)
+    ... with resolved type:
+      char
+    Constant Expression ('b': char)
+    ... with resolved type:
+      char
+
+ Alternatives are:
+Cost ( 0, 0, 0, 0, 0, 0, 0, 1 ): Application of
+      Variable Expression: ?=?: function
+      ... with parameters
+        reference to instance of struct string with body
+        char
+      ... returning
+        reference to instance of struct string with body
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          reference to instance of struct string with body
+          char
+        ... returning
+          reference to instance of struct string with body
+
+      ... to arguments
+      Generated Cast of:
+        Variable Expression: s: instance of struct string with body
+        ... with resolved type:
+          instance of struct string with body
+      ... to:
+        reference to instance of struct string with body
+      ... with resolved type:
+        reference to instance of struct string with body
+      Application of
+        Variable Expression: ?+?: function
+        ... with parameters
+          char
+          char
+        ... returning
+          char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            char
+            char
+          ... returning
+            char
+
+        ... to arguments
+        Constant Expression ('a': char)
+        ... with resolved type:
+          char
+        Constant Expression ('b': char)
+        ... with resolved type:
+          char
+
+      ... with resolved type:
+        char
+
+    ... with resolved type:
+      reference to instance of struct string with body
+  (types:
+    reference to instance of struct string with body
+  )
+  Environment:
+
+Cost ( 0, 0, 0, 0, 0, 0, 0, 1 ): Application of
+      Variable Expression: ?=?: function
+      ... with parameters
+        reference to instance of struct string with body
+        instance of struct string with body
+      ... returning
+        reference to instance of struct string with body
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          reference to instance of struct string with body
+          instance of struct string with body
+        ... returning
+          reference to instance of struct string with body
+
+      ... to arguments
+      Generated Cast of:
+        Variable Expression: s: instance of struct string with body
+        ... with resolved type:
+          instance of struct string with body
+      ... to:
+        reference to instance of struct string with body
+      ... with resolved type:
+        reference to instance of struct string with body
+      Application of
+        Variable Expression: ?+?: function
+        ... with parameters
+          char
+          char
+        ... returning
+          instance of struct string with body
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            char
+            char
+          ... returning
+            instance of struct string with body
+
+        ... to arguments
+        Constant Expression ('a': char)
+        ... with resolved type:
+          char
+        Constant Expression ('b': char)
+        ... with resolved type:
+          char
+
+      ... with resolved type:
+        instance of struct string with body
+
+    ... with resolved type:
+      reference to instance of struct string with body
+  (types:
+    reference to instance of struct string with body
+  )
+  Environment:
+
+
Index: tests/collections/.expect/string-operator-ERR06.txt
===================================================================
--- tests/collections/.expect/string-operator-ERR06.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
+++ tests/collections/.expect/string-operator-ERR06.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
@@ -0,0 +1,125 @@
+collections/string-operator.cfa:218:1 error: Cannot choose between 2 alternatives for expression
+Applying untyped:
+  Name: ?+?
+...to:
+  Applying untyped:
+    Name: ?+?
+  ...to:
+    Constant Expression ('a': char)
+    ... with resolved type:
+      char
+    Constant Expression ('b': char)
+    ... with resolved type:
+      char
+
+  Name: s
+ Alternatives are:
+Cost ( 0, 0, 0, 0, 0, 0, 0, 0 ): Application of
+      Variable Expression: ?+?: function
+      ... with parameters
+        char
+        instance of struct string with body
+      ... returning
+        instance of struct string with body
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          char
+          instance of struct string with body
+        ... returning
+          instance of struct string with body
+
+      ... to arguments
+      Application of
+        Variable Expression: ?+?: function
+        ... with parameters
+          char
+          char
+        ... returning
+          char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            char
+            char
+          ... returning
+            char
+
+        ... to arguments
+        Constant Expression ('a': char)
+        ... with resolved type:
+          char
+        Constant Expression ('b': char)
+        ... with resolved type:
+          char
+
+      ... with resolved type:
+        char
+      Variable Expression: s: instance of struct string with body
+      ... with resolved type:
+        instance of struct string with body
+
+    ... with resolved type:
+      instance of struct string with body
+  (types:
+    instance of struct string with body
+  )
+  Environment:
+
+Cost ( 0, 0, 0, 0, 0, 0, 0, 0 ): Application of
+      Variable Expression: ?+?: function
+      ... with parameters
+        instance of struct string with body
+        instance of struct string with body
+      ... returning
+        instance of struct string with body
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          instance of struct string with body
+          instance of struct string with body
+        ... returning
+          instance of struct string with body
+
+      ... to arguments
+      Application of
+        Variable Expression: ?+?: function
+        ... with parameters
+          char
+          char
+        ... returning
+          instance of struct string with body
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            char
+            char
+          ... returning
+            instance of struct string with body
+
+        ... to arguments
+        Constant Expression ('a': char)
+        ... with resolved type:
+          char
+        Constant Expression ('b': char)
+        ... with resolved type:
+          char
+
+      ... with resolved type:
+        instance of struct string with body
+      Variable Expression: s: instance of struct string with body
+      ... with resolved type:
+        instance of struct string with body
+
+    ... with resolved type:
+      instance of struct string with body
+  (types:
+    instance of struct string with body
+  )
+  Environment:
+
+
Index: tests/collections/.expect/string-operator-ERR07.txt
===================================================================
--- tests/collections/.expect/string-operator-ERR07.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
+++ tests/collections/.expect/string-operator-ERR07.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
@@ -0,0 +1,145 @@
+collections/string-operator.cfa:251:1 error: Cannot choose between 2 alternatives for expression
+Applying untyped:
+  Name: ?=?
+...to:
+  Name: s
+  Applying untyped:
+    Name: ?*?
+  ...to:
+    Constant Expression ('a': char)
+    ... with resolved type:
+      char
+    Constant Expression (3: signed int)
+    ... with resolved type:
+      signed int
+
+ Alternatives are:
+Cost ( 0, 0, 0, 2, 0, 0, 0, 1 ): Application of
+      Variable Expression: ?=?: function
+      ... with parameters
+        reference to instance of struct string with body
+        instance of struct string with body
+      ... returning
+        reference to instance of struct string with body
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          reference to instance of struct string with body
+          instance of struct string with body
+        ... returning
+          reference to instance of struct string with body
+
+      ... to arguments
+      Generated Cast of:
+        Variable Expression: s: instance of struct string with body
+        ... with resolved type:
+          instance of struct string with body
+      ... to:
+        reference to instance of struct string with body
+      ... with resolved type:
+        reference to instance of struct string with body
+      Application of
+        Variable Expression: ?*?: function
+        ... with parameters
+          char
+          signed long long int
+        ... returning
+          instance of struct string with body
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            char
+            signed long long int
+          ... returning
+            instance of struct string with body
+
+        ... to arguments
+        Constant Expression ('a': char)
+        ... with resolved type:
+          char
+        Generated Cast of:
+          Constant Expression (3: signed int)
+          ... with resolved type:
+            signed int
+        ... to:
+          signed long long int
+        ... with resolved type:
+          signed long long int
+
+      ... with resolved type:
+        instance of struct string with body
+
+    ... with resolved type:
+      reference to instance of struct string with body
+  (types:
+    reference to instance of struct string with body
+  )
+  Environment:
+
+Cost ( 0, 0, 0, 2, 0, 0, 0, 1 ): Application of
+      Variable Expression: ?=?: static inline function
+      ... with parameters
+        reference to instance of struct string with body
+        signed int
+      ... returning
+        reference to instance of struct string with body
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          reference to instance of struct string with body
+          signed int
+        ... returning
+          reference to instance of struct string with body
+
+      ... to arguments
+      Generated Cast of:
+        Variable Expression: s: instance of struct string with body
+        ... with resolved type:
+          instance of struct string with body
+      ... to:
+        reference to instance of struct string with body
+      ... with resolved type:
+        reference to instance of struct string with body
+      Application of
+        Variable Expression: ?*?: function
+        ... with parameters
+          signed int
+          signed int
+        ... returning
+          signed int
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            signed int
+            signed int
+          ... returning
+            signed int
+
+        ... to arguments
+        Generated Cast of:
+          Constant Expression ('a': char)
+          ... with resolved type:
+            char
+        ... to:
+          signed int
+        ... with resolved type:
+          signed int
+        Constant Expression (3: signed int)
+        ... with resolved type:
+          signed int
+
+      ... with resolved type:
+        signed int
+
+    ... with resolved type:
+      reference to instance of struct string with body
+  (types:
+    reference to instance of struct string with body
+  )
+  Environment:
+
+
Index: tests/collections/.expect/string-operator-ERR08.txt
===================================================================
--- tests/collections/.expect/string-operator-ERR08.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
+++ tests/collections/.expect/string-operator-ERR08.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
@@ -0,0 +1,145 @@
+collections/string-operator.cfa:262:1 error: Cannot choose between 2 alternatives for expression
+Applying untyped:
+  Name: ?=?
+...to:
+  Name: s
+  Applying untyped:
+    Name: ?*?
+  ...to:
+    Constant Expression (3: signed int)
+    ... with resolved type:
+      signed int
+    Constant Expression ('a': char)
+    ... with resolved type:
+      char
+
+ Alternatives are:
+Cost ( 0, 0, 0, 2, 0, 0, 0, 1 ): Application of
+      Variable Expression: ?=?: function
+      ... with parameters
+        reference to instance of struct string with body
+        instance of struct string with body
+      ... returning
+        reference to instance of struct string with body
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          reference to instance of struct string with body
+          instance of struct string with body
+        ... returning
+          reference to instance of struct string with body
+
+      ... to arguments
+      Generated Cast of:
+        Variable Expression: s: instance of struct string with body
+        ... with resolved type:
+          instance of struct string with body
+      ... to:
+        reference to instance of struct string with body
+      ... with resolved type:
+        reference to instance of struct string with body
+      Application of
+        Variable Expression: ?*?: static inline function
+        ... with parameters
+          signed long long int
+          char
+        ... returning
+          instance of struct string with body
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            signed long long int
+            char
+          ... returning
+            instance of struct string with body
+
+        ... to arguments
+        Generated Cast of:
+          Constant Expression (3: signed int)
+          ... with resolved type:
+            signed int
+        ... to:
+          signed long long int
+        ... with resolved type:
+          signed long long int
+        Constant Expression ('a': char)
+        ... with resolved type:
+          char
+
+      ... with resolved type:
+        instance of struct string with body
+
+    ... with resolved type:
+      reference to instance of struct string with body
+  (types:
+    reference to instance of struct string with body
+  )
+  Environment:
+
+Cost ( 0, 0, 0, 2, 0, 0, 0, 1 ): Application of
+      Variable Expression: ?=?: static inline function
+      ... with parameters
+        reference to instance of struct string with body
+        signed int
+      ... returning
+        reference to instance of struct string with body
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          reference to instance of struct string with body
+          signed int
+        ... returning
+          reference to instance of struct string with body
+
+      ... to arguments
+      Generated Cast of:
+        Variable Expression: s: instance of struct string with body
+        ... with resolved type:
+          instance of struct string with body
+      ... to:
+        reference to instance of struct string with body
+      ... with resolved type:
+        reference to instance of struct string with body
+      Application of
+        Variable Expression: ?*?: function
+        ... with parameters
+          signed int
+          signed int
+        ... returning
+          signed int
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            signed int
+            signed int
+          ... returning
+            signed int
+
+        ... to arguments
+        Constant Expression (3: signed int)
+        ... with resolved type:
+          signed int
+        Generated Cast of:
+          Constant Expression ('a': char)
+          ... with resolved type:
+            char
+        ... to:
+          signed int
+        ... with resolved type:
+          signed int
+
+      ... with resolved type:
+        signed int
+
+    ... with resolved type:
+      reference to instance of struct string with body
+  (types:
+    reference to instance of struct string with body
+  )
+  Environment:
+
+
Index: tests/collections/.expect/string-operator-ERR10.txt
===================================================================
--- tests/collections/.expect/string-operator-ERR10.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
+++ tests/collections/.expect/string-operator-ERR10.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
@@ -0,0 +1,125 @@
+collections/string-operator.cfa:283:1 error: Cannot choose between 2 alternatives for expression
+Applying untyped:
+  Name: ?+?
+...to:
+  Applying untyped:
+    Name: ?+?
+  ...to:
+    Constant Expression ('a': char)
+    ... with resolved type:
+      char
+    Constant Expression ('b': char)
+    ... with resolved type:
+      char
+
+  Name: s
+ Alternatives are:
+Cost ( 0, 0, 0, 0, 0, 0, 0, 0 ): Application of
+      Variable Expression: ?+?: function
+      ... with parameters
+        char
+        instance of struct string with body
+      ... returning
+        instance of struct string with body
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          char
+          instance of struct string with body
+        ... returning
+          instance of struct string with body
+
+      ... to arguments
+      Application of
+        Variable Expression: ?+?: function
+        ... with parameters
+          char
+          char
+        ... returning
+          char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            char
+            char
+          ... returning
+            char
+
+        ... to arguments
+        Constant Expression ('a': char)
+        ... with resolved type:
+          char
+        Constant Expression ('b': char)
+        ... with resolved type:
+          char
+
+      ... with resolved type:
+        char
+      Variable Expression: s: instance of struct string with body
+      ... with resolved type:
+        instance of struct string with body
+
+    ... with resolved type:
+      instance of struct string with body
+  (types:
+    instance of struct string with body
+  )
+  Environment:
+
+Cost ( 0, 0, 0, 0, 0, 0, 0, 0 ): Application of
+      Variable Expression: ?+?: function
+      ... with parameters
+        instance of struct string with body
+        instance of struct string with body
+      ... returning
+        instance of struct string with body
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          instance of struct string with body
+          instance of struct string with body
+        ... returning
+          instance of struct string with body
+
+      ... to arguments
+      Application of
+        Variable Expression: ?+?: function
+        ... with parameters
+          char
+          char
+        ... returning
+          instance of struct string with body
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            char
+            char
+          ... returning
+            instance of struct string with body
+
+        ... to arguments
+        Constant Expression ('a': char)
+        ... with resolved type:
+          char
+        Constant Expression ('b': char)
+        ... with resolved type:
+          char
+
+      ... with resolved type:
+        instance of struct string with body
+      Variable Expression: s: instance of struct string with body
+      ... with resolved type:
+        instance of struct string with body
+
+    ... with resolved type:
+      instance of struct string with body
+  (types:
+    instance of struct string with body
+  )
+  Environment:
+
+
Index: tests/collections/.expect/string-operator-ERR11.txt
===================================================================
--- tests/collections/.expect/string-operator-ERR11.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
+++ tests/collections/.expect/string-operator-ERR11.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
@@ -0,0 +1,3205 @@
+collections/string-operator.cfa:301:1 error: Cannot choose between 4 alternatives for expression
+Applying untyped:
+  Name: ?|?
+...to:
+  Name: sout
+  Applying untyped:
+    Name: ?*?
+  ...to:
+    Constant Expression ('a': char)
+    ... with resolved type:
+      char
+    Constant Expression (3: signed int)
+    ... with resolved type:
+      signed int
+
+ Alternatives are:
+Cost ( 0, 0, 1, 2, 0, 1, -24, 0 ): Application of
+      Variable Expression: ?|?: forall
+        instance of type ostype (not function type)
+        with assertions
+        Variable Expression: sepPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepReset$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sepReset$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning nothing
+
+        Variable Expression: sepGetCur$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSetCur$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: getNL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setNL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: getANL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setANL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: getPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: nlOn: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: nlOff: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sep: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: nosep: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sepOn: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepOff: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepGet: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSet: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: sepGetTuple: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSetTuple: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: ends: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: fmt: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+          and a variable number of other arguments
+        ... returning
+          signed int
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+            and a variable number of other arguments
+          ... returning
+            signed int
+
+        function
+      ... with parameters
+        reference to instance of type ostype (not function type)
+        instance of struct string with body
+      ... returning
+        reference to instance of type ostype (not function type)
+
+      ... with resolved type:
+        pointer to forall
+          instance of type [unbound] (not function type)
+          with assertions
+          Variable Expression: sepPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepReset$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sepReset$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning nothing
+
+          Variable Expression: sepGetCur$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSetCur$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: getNL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setNL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: getANL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setANL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: getPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: nlOn: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: nlOff: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sep: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: nosep: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sepOn: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepOff: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepGet: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSet: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: sepGetTuple: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSetTuple: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: ends: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: fmt: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+            and a variable number of other arguments
+          ... returning
+            signed int
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+              and a variable number of other arguments
+            ... returning
+              signed int
+
+          function
+        ... with parameters
+          reference to instance of type [unbound] (not function type)
+          instance of struct string with body
+        ... returning
+          reference to instance of type [unbound] (not function type)
+
+      ... to arguments
+      Variable Expression: sout: extern reference to instance of struct ofstream with body
+      ... with resolved type:
+        reference to instance of struct ofstream with body
+      Application of
+        Variable Expression: ?*?: function
+        ... with parameters
+          char
+          signed long long int
+        ... returning
+          instance of struct string with body
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            char
+            signed long long int
+          ... returning
+            instance of struct string with body
+
+        ... to arguments
+        Constant Expression ('a': char)
+        ... with resolved type:
+          char
+        Generated Cast of:
+          Constant Expression (3: signed int)
+          ... with resolved type:
+            signed int
+        ... to:
+          signed long long int
+        ... with resolved type:
+          signed long long int
+
+      ... with resolved type:
+        instance of struct string with body
+    with inferred parameters 0:
+      sepPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepReset$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sepReset$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning nothing
+
+      sepGetCur$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSetCur$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      getNL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setNL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      getANL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setANL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      getPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      nlOn: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      nlOff: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sep: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      nosep: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sepOn: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepOff: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepGet: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSet: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      sepGetTuple: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSetTuple: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      ends: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      fmt: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+        and a variable number of other arguments
+      ... returning
+        signed int
+
+
+    ... with resolved type:
+      reference to instance of type [unbound] (not function type)
+  (types:
+    reference to instance of type [unbound] (not function type)
+  )
+  Environment:([unbound]ostype) -> instance of struct ofstream with body (no widening)
+
+
+Cost ( 0, 0, 1, 2, 0, 1, -24, 0 ): Application of
+      Variable Expression: ?|?: forall
+        instance of type ostype (not function type)
+        with assertions
+        Variable Expression: sepPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepReset$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sepReset$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning nothing
+
+        Variable Expression: sepGetCur$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSetCur$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: getNL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setNL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: getANL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setANL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: getPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: nlOn: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: nlOff: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sep: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: nosep: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sepOn: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepOff: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepGet: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSet: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: sepGetTuple: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSetTuple: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: ends: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: fmt: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+          and a variable number of other arguments
+        ... returning
+          signed int
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+            and a variable number of other arguments
+          ... returning
+            signed int
+
+        function
+      ... with parameters
+        reference to instance of type ostype (not function type)
+        instance of struct string with body
+      ... returning nothing
+
+      ... with resolved type:
+        pointer to forall
+          instance of type [unbound] (not function type)
+          with assertions
+          Variable Expression: sepPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepReset$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sepReset$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning nothing
+
+          Variable Expression: sepGetCur$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSetCur$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: getNL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setNL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: getANL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setANL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: getPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: nlOn: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: nlOff: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sep: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: nosep: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sepOn: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepOff: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepGet: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSet: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: sepGetTuple: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSetTuple: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: ends: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: fmt: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+            and a variable number of other arguments
+          ... returning
+            signed int
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+              and a variable number of other arguments
+            ... returning
+              signed int
+
+          function
+        ... with parameters
+          reference to instance of type [unbound] (not function type)
+          instance of struct string with body
+        ... returning nothing
+
+      ... to arguments
+      Variable Expression: sout: extern reference to instance of struct ofstream with body
+      ... with resolved type:
+        reference to instance of struct ofstream with body
+      Application of
+        Variable Expression: ?*?: function
+        ... with parameters
+          char
+          signed long long int
+        ... returning
+          instance of struct string with body
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            char
+            signed long long int
+          ... returning
+            instance of struct string with body
+
+        ... to arguments
+        Constant Expression ('a': char)
+        ... with resolved type:
+          char
+        Generated Cast of:
+          Constant Expression (3: signed int)
+          ... with resolved type:
+            signed int
+        ... to:
+          signed long long int
+        ... with resolved type:
+          signed long long int
+
+      ... with resolved type:
+        instance of struct string with body
+    with inferred parameters 0:
+      sepPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepReset$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sepReset$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning nothing
+
+      sepGetCur$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSetCur$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      getNL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setNL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      getANL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setANL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      getPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      nlOn: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      nlOff: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sep: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      nosep: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sepOn: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepOff: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepGet: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSet: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      sepGetTuple: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSetTuple: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      ends: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      fmt: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+        and a variable number of other arguments
+      ... returning
+        signed int
+
+
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:([unbound]ostype) -> instance of struct ofstream with body (no widening)
+
+
+Cost ( 0, 0, 1, 2, 0, 1, -24, 0 ): Application of
+      Variable Expression: ?|?: forall
+        instance of type ostype (not function type)
+        with assertions
+        Variable Expression: sepPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepReset$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sepReset$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning nothing
+
+        Variable Expression: sepGetCur$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSetCur$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: getNL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setNL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: getANL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setANL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: getPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: nlOn: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: nlOff: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sep: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: nosep: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sepOn: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepOff: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepGet: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSet: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: sepGetTuple: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSetTuple: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: ends: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: fmt: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+          and a variable number of other arguments
+        ... returning
+          signed int
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+            and a variable number of other arguments
+          ... returning
+            signed int
+
+        function
+      ... with parameters
+        reference to instance of type ostype (not function type)
+        signed int
+      ... returning
+        reference to instance of type ostype (not function type)
+
+      ... with resolved type:
+        pointer to forall
+          instance of type [unbound] (not function type)
+          with assertions
+          Variable Expression: sepPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepReset$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sepReset$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning nothing
+
+          Variable Expression: sepGetCur$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSetCur$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: getNL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setNL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: getANL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setANL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: getPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: nlOn: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: nlOff: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sep: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: nosep: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sepOn: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepOff: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepGet: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSet: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: sepGetTuple: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSetTuple: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: ends: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: fmt: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+            and a variable number of other arguments
+          ... returning
+            signed int
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+              and a variable number of other arguments
+            ... returning
+              signed int
+
+          function
+        ... with parameters
+          reference to instance of type [unbound] (not function type)
+          signed int
+        ... returning
+          reference to instance of type [unbound] (not function type)
+
+      ... to arguments
+      Variable Expression: sout: extern reference to instance of struct ofstream with body
+      ... with resolved type:
+        reference to instance of struct ofstream with body
+      Application of
+        Variable Expression: ?*?: function
+        ... with parameters
+          signed int
+          signed int
+        ... returning
+          signed int
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            signed int
+            signed int
+          ... returning
+            signed int
+
+        ... to arguments
+        Generated Cast of:
+          Constant Expression ('a': char)
+          ... with resolved type:
+            char
+        ... to:
+          signed int
+        ... with resolved type:
+          signed int
+        Constant Expression (3: signed int)
+        ... with resolved type:
+          signed int
+
+      ... with resolved type:
+        signed int
+    with inferred parameters 0:
+      sepPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepReset$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sepReset$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning nothing
+
+      sepGetCur$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSetCur$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      getNL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setNL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      getANL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setANL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      getPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      nlOn: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      nlOff: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sep: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      nosep: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sepOn: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepOff: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepGet: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSet: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      sepGetTuple: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSetTuple: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      ends: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      fmt: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+        and a variable number of other arguments
+      ... returning
+        signed int
+
+
+    ... with resolved type:
+      reference to instance of type [unbound] (not function type)
+  (types:
+    reference to instance of type [unbound] (not function type)
+  )
+  Environment:([unbound]ostype) -> instance of struct ofstream with body (no widening)
+
+
+Cost ( 0, 0, 1, 2, 0, 1, -24, 0 ): Application of
+      Variable Expression: ?|?: forall
+        instance of type ostype (not function type)
+        with assertions
+        Variable Expression: sepPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepReset$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sepReset$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning nothing
+
+        Variable Expression: sepGetCur$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSetCur$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: getNL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setNL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: getANL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setANL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: getPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: nlOn: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: nlOff: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sep: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: nosep: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sepOn: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepOff: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepGet: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSet: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: sepGetTuple: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSetTuple: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: ends: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: fmt: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+          and a variable number of other arguments
+        ... returning
+          signed int
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+            and a variable number of other arguments
+          ... returning
+            signed int
+
+        function
+      ... with parameters
+        reference to instance of type ostype (not function type)
+        signed int
+      ... returning nothing
+
+      ... with resolved type:
+        pointer to forall
+          instance of type [unbound] (not function type)
+          with assertions
+          Variable Expression: sepPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepReset$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sepReset$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning nothing
+
+          Variable Expression: sepGetCur$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSetCur$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: getNL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setNL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: getANL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setANL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: getPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: nlOn: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: nlOff: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sep: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: nosep: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sepOn: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepOff: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepGet: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSet: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: sepGetTuple: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSetTuple: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: ends: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: fmt: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+            and a variable number of other arguments
+          ... returning
+            signed int
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+              and a variable number of other arguments
+            ... returning
+              signed int
+
+          function
+        ... with parameters
+          reference to instance of type [unbound] (not function type)
+          signed int
+        ... returning nothing
+
+      ... to arguments
+      Variable Expression: sout: extern reference to instance of struct ofstream with body
+      ... with resolved type:
+        reference to instance of struct ofstream with body
+      Application of
+        Variable Expression: ?*?: function
+        ... with parameters
+          signed int
+          signed int
+        ... returning
+          signed int
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            signed int
+            signed int
+          ... returning
+            signed int
+
+        ... to arguments
+        Generated Cast of:
+          Constant Expression ('a': char)
+          ... with resolved type:
+            char
+        ... to:
+          signed int
+        ... with resolved type:
+          signed int
+        Constant Expression (3: signed int)
+        ... with resolved type:
+          signed int
+
+      ... with resolved type:
+        signed int
+    with inferred parameters 0:
+      sepPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepReset$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sepReset$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning nothing
+
+      sepGetCur$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSetCur$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      getNL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setNL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      getANL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setANL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      getPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      nlOn: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      nlOff: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sep: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      nosep: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sepOn: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepOff: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepGet: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSet: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      sepGetTuple: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSetTuple: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      ends: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      fmt: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+        and a variable number of other arguments
+      ... returning
+        signed int
+
+
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:([unbound]ostype) -> instance of struct ofstream with body (no widening)
+
+
+
Index: tests/collections/.expect/string-operator-ERR13.txt
===================================================================
--- tests/collections/.expect/string-operator-ERR13.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
+++ tests/collections/.expect/string-operator-ERR13.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
@@ -0,0 +1,3205 @@
+collections/string-operator.cfa:307:1 error: Cannot choose between 4 alternatives for expression
+Applying untyped:
+  Name: ?|?
+...to:
+  Name: sout
+  Applying untyped:
+    Name: ?*?
+  ...to:
+    Constant Expression (3: signed int)
+    ... with resolved type:
+      signed int
+    Constant Expression ('a': char)
+    ... with resolved type:
+      char
+
+ Alternatives are:
+Cost ( 0, 0, 1, 2, 0, 1, -24, 0 ): Application of
+      Variable Expression: ?|?: forall
+        instance of type ostype (not function type)
+        with assertions
+        Variable Expression: sepPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepReset$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sepReset$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning nothing
+
+        Variable Expression: sepGetCur$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSetCur$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: getNL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setNL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: getANL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setANL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: getPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: nlOn: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: nlOff: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sep: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: nosep: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sepOn: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepOff: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepGet: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSet: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: sepGetTuple: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSetTuple: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: ends: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: fmt: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+          and a variable number of other arguments
+        ... returning
+          signed int
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+            and a variable number of other arguments
+          ... returning
+            signed int
+
+        function
+      ... with parameters
+        reference to instance of type ostype (not function type)
+        instance of struct string with body
+      ... returning
+        reference to instance of type ostype (not function type)
+
+      ... with resolved type:
+        pointer to forall
+          instance of type [unbound] (not function type)
+          with assertions
+          Variable Expression: sepPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepReset$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sepReset$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning nothing
+
+          Variable Expression: sepGetCur$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSetCur$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: getNL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setNL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: getANL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setANL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: getPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: nlOn: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: nlOff: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sep: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: nosep: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sepOn: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepOff: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepGet: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSet: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: sepGetTuple: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSetTuple: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: ends: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: fmt: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+            and a variable number of other arguments
+          ... returning
+            signed int
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+              and a variable number of other arguments
+            ... returning
+              signed int
+
+          function
+        ... with parameters
+          reference to instance of type [unbound] (not function type)
+          instance of struct string with body
+        ... returning
+          reference to instance of type [unbound] (not function type)
+
+      ... to arguments
+      Variable Expression: sout: extern reference to instance of struct ofstream with body
+      ... with resolved type:
+        reference to instance of struct ofstream with body
+      Application of
+        Variable Expression: ?*?: static inline function
+        ... with parameters
+          signed long long int
+          char
+        ... returning
+          instance of struct string with body
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            signed long long int
+            char
+          ... returning
+            instance of struct string with body
+
+        ... to arguments
+        Generated Cast of:
+          Constant Expression (3: signed int)
+          ... with resolved type:
+            signed int
+        ... to:
+          signed long long int
+        ... with resolved type:
+          signed long long int
+        Constant Expression ('a': char)
+        ... with resolved type:
+          char
+
+      ... with resolved type:
+        instance of struct string with body
+    with inferred parameters 0:
+      sepPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepReset$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sepReset$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning nothing
+
+      sepGetCur$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSetCur$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      getNL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setNL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      getANL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setANL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      getPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      nlOn: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      nlOff: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sep: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      nosep: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sepOn: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepOff: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepGet: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSet: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      sepGetTuple: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSetTuple: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      ends: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      fmt: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+        and a variable number of other arguments
+      ... returning
+        signed int
+
+
+    ... with resolved type:
+      reference to instance of type [unbound] (not function type)
+  (types:
+    reference to instance of type [unbound] (not function type)
+  )
+  Environment:([unbound]ostype) -> instance of struct ofstream with body (no widening)
+
+
+Cost ( 0, 0, 1, 2, 0, 1, -24, 0 ): Application of
+      Variable Expression: ?|?: forall
+        instance of type ostype (not function type)
+        with assertions
+        Variable Expression: sepPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepReset$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sepReset$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning nothing
+
+        Variable Expression: sepGetCur$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSetCur$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: getNL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setNL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: getANL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setANL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: getPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: nlOn: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: nlOff: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sep: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: nosep: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sepOn: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepOff: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepGet: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSet: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: sepGetTuple: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSetTuple: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: ends: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: fmt: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+          and a variable number of other arguments
+        ... returning
+          signed int
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+            and a variable number of other arguments
+          ... returning
+            signed int
+
+        function
+      ... with parameters
+        reference to instance of type ostype (not function type)
+        instance of struct string with body
+      ... returning nothing
+
+      ... with resolved type:
+        pointer to forall
+          instance of type [unbound] (not function type)
+          with assertions
+          Variable Expression: sepPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepReset$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sepReset$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning nothing
+
+          Variable Expression: sepGetCur$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSetCur$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: getNL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setNL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: getANL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setANL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: getPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: nlOn: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: nlOff: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sep: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: nosep: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sepOn: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepOff: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepGet: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSet: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: sepGetTuple: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSetTuple: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: ends: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: fmt: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+            and a variable number of other arguments
+          ... returning
+            signed int
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+              and a variable number of other arguments
+            ... returning
+              signed int
+
+          function
+        ... with parameters
+          reference to instance of type [unbound] (not function type)
+          instance of struct string with body
+        ... returning nothing
+
+      ... to arguments
+      Variable Expression: sout: extern reference to instance of struct ofstream with body
+      ... with resolved type:
+        reference to instance of struct ofstream with body
+      Application of
+        Variable Expression: ?*?: static inline function
+        ... with parameters
+          signed long long int
+          char
+        ... returning
+          instance of struct string with body
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            signed long long int
+            char
+          ... returning
+            instance of struct string with body
+
+        ... to arguments
+        Generated Cast of:
+          Constant Expression (3: signed int)
+          ... with resolved type:
+            signed int
+        ... to:
+          signed long long int
+        ... with resolved type:
+          signed long long int
+        Constant Expression ('a': char)
+        ... with resolved type:
+          char
+
+      ... with resolved type:
+        instance of struct string with body
+    with inferred parameters 0:
+      sepPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepReset$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sepReset$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning nothing
+
+      sepGetCur$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSetCur$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      getNL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setNL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      getANL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setANL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      getPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      nlOn: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      nlOff: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sep: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      nosep: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sepOn: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepOff: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepGet: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSet: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      sepGetTuple: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSetTuple: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      ends: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      fmt: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+        and a variable number of other arguments
+      ... returning
+        signed int
+
+
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:([unbound]ostype) -> instance of struct ofstream with body (no widening)
+
+
+Cost ( 0, 0, 1, 2, 0, 1, -24, 0 ): Application of
+      Variable Expression: ?|?: forall
+        instance of type ostype (not function type)
+        with assertions
+        Variable Expression: sepPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepReset$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sepReset$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning nothing
+
+        Variable Expression: sepGetCur$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSetCur$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: getNL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setNL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: getANL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setANL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: getPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: nlOn: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: nlOff: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sep: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: nosep: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sepOn: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepOff: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepGet: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSet: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: sepGetTuple: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSetTuple: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: ends: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: fmt: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+          and a variable number of other arguments
+        ... returning
+          signed int
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+            and a variable number of other arguments
+          ... returning
+            signed int
+
+        function
+      ... with parameters
+        reference to instance of type ostype (not function type)
+        signed int
+      ... returning
+        reference to instance of type ostype (not function type)
+
+      ... with resolved type:
+        pointer to forall
+          instance of type [unbound] (not function type)
+          with assertions
+          Variable Expression: sepPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepReset$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sepReset$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning nothing
+
+          Variable Expression: sepGetCur$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSetCur$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: getNL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setNL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: getANL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setANL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: getPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: nlOn: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: nlOff: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sep: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: nosep: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sepOn: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepOff: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepGet: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSet: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: sepGetTuple: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSetTuple: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: ends: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: fmt: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+            and a variable number of other arguments
+          ... returning
+            signed int
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+              and a variable number of other arguments
+            ... returning
+              signed int
+
+          function
+        ... with parameters
+          reference to instance of type [unbound] (not function type)
+          signed int
+        ... returning
+          reference to instance of type [unbound] (not function type)
+
+      ... to arguments
+      Variable Expression: sout: extern reference to instance of struct ofstream with body
+      ... with resolved type:
+        reference to instance of struct ofstream with body
+      Application of
+        Variable Expression: ?*?: function
+        ... with parameters
+          signed int
+          signed int
+        ... returning
+          signed int
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            signed int
+            signed int
+          ... returning
+            signed int
+
+        ... to arguments
+        Constant Expression (3: signed int)
+        ... with resolved type:
+          signed int
+        Generated Cast of:
+          Constant Expression ('a': char)
+          ... with resolved type:
+            char
+        ... to:
+          signed int
+        ... with resolved type:
+          signed int
+
+      ... with resolved type:
+        signed int
+    with inferred parameters 0:
+      sepPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepReset$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sepReset$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning nothing
+
+      sepGetCur$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSetCur$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      getNL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setNL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      getANL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setANL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      getPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      nlOn: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      nlOff: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sep: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      nosep: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sepOn: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepOff: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepGet: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSet: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      sepGetTuple: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSetTuple: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      ends: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      fmt: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+        and a variable number of other arguments
+      ... returning
+        signed int
+
+
+    ... with resolved type:
+      reference to instance of type [unbound] (not function type)
+  (types:
+    reference to instance of type [unbound] (not function type)
+  )
+  Environment:([unbound]ostype) -> instance of struct ofstream with body (no widening)
+
+
+Cost ( 0, 0, 1, 2, 0, 1, -24, 0 ): Application of
+      Variable Expression: ?|?: forall
+        instance of type ostype (not function type)
+        with assertions
+        Variable Expression: sepPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepReset$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sepReset$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning nothing
+
+        Variable Expression: sepGetCur$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSetCur$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: getNL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setNL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: getANL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setANL$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: getPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: setPrt$: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          _Bool
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+        Variable Expression: nlOn: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: nlOff: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sep: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: nosep: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: sepOn: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepOff: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          _Bool
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+        Variable Expression: sepGet: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSet: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: sepGetTuple: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning
+          pointer to const char
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+        Variable Expression: sepSetTuple: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+        Variable Expression: ends: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+        ... returning nothing
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+        Variable Expression: fmt: pointer to function
+        ... with parameters
+          reference to instance of type ostype (not function type)
+          pointer to const char
+          and a variable number of other arguments
+        ... returning
+          signed int
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+            and a variable number of other arguments
+          ... returning
+            signed int
+
+        function
+      ... with parameters
+        reference to instance of type ostype (not function type)
+        signed int
+      ... returning nothing
+
+      ... with resolved type:
+        pointer to forall
+          instance of type [unbound] (not function type)
+          with assertions
+          Variable Expression: sepPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepReset$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sepReset$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning nothing
+
+          Variable Expression: sepGetCur$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSetCur$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: getNL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setNL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: getANL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setANL$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: getPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: setPrt$: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            _Bool
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              _Bool
+            ... returning
+              _Bool
+
+          Variable Expression: nlOn: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: nlOff: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sep: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: nosep: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: sepOn: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepOff: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            _Bool
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              _Bool
+
+          Variable Expression: sepGet: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSet: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: sepGetTuple: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning
+            pointer to const char
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning
+              pointer to const char
+
+          Variable Expression: sepSetTuple: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+            ... returning nothing
+
+          Variable Expression: ends: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+          ... returning nothing
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+            ... returning nothing
+
+          Variable Expression: fmt: pointer to function
+          ... with parameters
+            reference to instance of type ostype (not function type)
+            pointer to const char
+            and a variable number of other arguments
+          ... returning
+            signed int
+
+          ... with resolved type:
+            pointer to function
+            ... with parameters
+              reference to instance of type [unbound] (not function type)
+              pointer to const char
+              and a variable number of other arguments
+            ... returning
+              signed int
+
+          function
+        ... with parameters
+          reference to instance of type [unbound] (not function type)
+          signed int
+        ... returning nothing
+
+      ... to arguments
+      Variable Expression: sout: extern reference to instance of struct ofstream with body
+      ... with resolved type:
+        reference to instance of struct ofstream with body
+      Application of
+        Variable Expression: ?*?: function
+        ... with parameters
+          signed int
+          signed int
+        ... returning
+          signed int
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            signed int
+            signed int
+          ... returning
+            signed int
+
+        ... to arguments
+        Constant Expression (3: signed int)
+        ... with resolved type:
+          signed int
+        Generated Cast of:
+          Constant Expression ('a': char)
+          ... with resolved type:
+            char
+        ... to:
+          signed int
+        ... with resolved type:
+          signed int
+
+      ... with resolved type:
+        signed int
+    with inferred parameters 0:
+      sepPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepReset$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sepReset$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning nothing
+
+      sepGetCur$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSetCur$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      getNL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setNL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      getANL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setANL$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      getPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      setPrt$: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        _Bool
+      ... returning
+        _Bool
+
+      nlOn: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      nlOff: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sep: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      nosep: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      sepOn: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepOff: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        _Bool
+
+      sepGet: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSet: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      sepGetTuple: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning
+        pointer to const char
+
+      sepSetTuple: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+      ... returning nothing
+
+      ends: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+      ... returning nothing
+
+      fmt: function
+      ... with parameters
+        reference to instance of struct ofstream with body
+        pointer to const char
+        and a variable number of other arguments
+      ... returning
+        signed int
+
+
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:([unbound]ostype) -> instance of struct ofstream with body (no widening)
+
+
+
Index: tests/collections/.expect/string-operator-ERR16.txt
===================================================================
--- tests/collections/.expect/string-operator-ERR16.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
+++ tests/collections/.expect/string-operator-ERR16.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
@@ -0,0 +1,151 @@
+collections/string-operator.cfa:318:1 error: Cannot choose between 2 alternatives for expression
+Applying untyped:
+  Name: printf
+...to:
+  Constant Expression ("%d\n": array of char with dimension of Constant Expression (4: unsigned long int)
+  ... with resolved type:
+    unsigned long int)
+  ... with resolved type:
+    array of char with dimension of Constant Expression (4: unsigned long int)
+    ... with resolved type:
+      unsigned long int
+  Applying untyped:
+    Name: ?*?
+  ...to:
+    Constant Expression ('a': char)
+    ... with resolved type:
+      char
+    Constant Expression (3: signed int)
+    ... with resolved type:
+      signed int
+
+ Alternatives are:
+Cost ( 1, 0, 0, 3, 0, 0, 0, 0 ): Application of
+      Variable Expression: printf: extern function
+      ... with parameters
+        restrict pointer to const char
+        and a variable number of other arguments
+      ... returning
+        signed int
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          restrict pointer to const char
+          and a variable number of other arguments
+        ... returning
+          signed int
+
+      ... to arguments
+      Generated Cast of:
+        Constant Expression ("%d\n": pointer to char)
+        ... with resolved type:
+          pointer to char
+      ... to:
+        restrict pointer to const char
+      ... with resolved type:
+        restrict pointer to const char
+      Application of
+        Variable Expression: ?*?: function
+        ... with parameters
+          char
+          signed long long int
+        ... returning
+          instance of struct string with body
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            char
+            signed long long int
+          ... returning
+            instance of struct string with body
+
+        ... to arguments
+        Constant Expression ('a': char)
+        ... with resolved type:
+          char
+        Generated Cast of:
+          Constant Expression (3: signed int)
+          ... with resolved type:
+            signed int
+        ... to:
+          signed long long int
+        ... with resolved type:
+          signed long long int
+
+      ... with resolved type:
+        instance of struct string with body
+
+    ... with resolved type:
+      signed int
+  (types:
+    signed int
+  )
+  Environment:
+
+Cost ( 1, 0, 0, 3, 0, 0, 0, 0 ): Application of
+      Variable Expression: printf: extern function
+      ... with parameters
+        restrict pointer to const char
+        and a variable number of other arguments
+      ... returning
+        signed int
+
+      ... with resolved type:
+        pointer to function
+        ... with parameters
+          restrict pointer to const char
+          and a variable number of other arguments
+        ... returning
+          signed int
+
+      ... to arguments
+      Generated Cast of:
+        Constant Expression ("%d\n": pointer to char)
+        ... with resolved type:
+          pointer to char
+      ... to:
+        restrict pointer to const char
+      ... with resolved type:
+        restrict pointer to const char
+      Application of
+        Variable Expression: ?*?: function
+        ... with parameters
+          signed int
+          signed int
+        ... returning
+          signed int
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            signed int
+            signed int
+          ... returning
+            signed int
+
+        ... to arguments
+        Generated Cast of:
+          Constant Expression ('a': char)
+          ... with resolved type:
+            char
+        ... to:
+          signed int
+        ... with resolved type:
+          signed int
+        Constant Expression (3: signed int)
+        ... with resolved type:
+          signed int
+
+      ... with resolved type:
+        signed int
+
+    ... with resolved type:
+      signed int
+  (types:
+    signed int
+  )
+  Environment:
+
+
Index: tests/collections/.expect/string-operator.txt
===================================================================
--- tests/collections/.expect/string-operator.txt	(revision 3f631d63dc8a3d8d5bd5e664c971d336878cb507)
+++ tests/collections/.expect/string-operator.txt	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
@@ -3,10 +3,10 @@
 
 ------------- Initialization
-Ã
+(skip)
 ab
 ab
 ab
 
-Ãx
+(skip)
 abx
 abx
@@ -23,24 +23,24 @@
 axb
 
-aaa
+(skip)
 bbb
-ÃÃÃ
+585
 cdcdcd
 
-291
+(skip)
 bbb
-ababab
+585
 cdcdcd
 
 ------------- Assignment
-Ã
+(skip)
 ab
 ab
 ab
 
-Ã
-abÃ
-ababÃ
-abababÃ
+(skip)
+ab
+abab
+ababab
 
 ab
@@ -54,12 +54,12 @@
 aaaabbbb
 
-aaa
+(skip)
 bbb
-ÃÃÃ
+585
 cdcdcd
 
-291
+(skip)
 bbb
-ababab
+585
 cdcdcd
 
@@ -70,5 +70,5 @@
 ab
 
-Ãx
+(skip)
 abx
 abx
@@ -85,10 +85,10 @@
 axb
 
-291
+(skip)
 bbb
 585
 cdcdcd
 
-291
+(skip)
 bbb
 585
@@ -97,4 +97,4 @@
 ------------- Miscellany
 (skip)
-291
+(skip)
 0x2a 0x2d
Index: tests/collections/string-operator.cfa
===================================================================
--- tests/collections/string-operator.cfa	(revision 3f631d63dc8a3d8d5bd5e664c971d336878cb507)
+++ tests/collections/string-operator.cfa	(revision 570e7ad00de8288cde75cec124f5ec3910662225)
@@ -9,22 +9,22 @@
 
 // These MR points do reject in the current revision, so they have satellite "-ERR" cases:
+// MR01
+// MR02
+// MR03
+// MR04
+// MR05
+// MR06
+// MR07
+// MR08
 // MR09
+// MR10
+// MR11
+// MR13
 // MR15
+// MR16
 
 // These MR points do not reject in the current revision, so they join the "happy run":
-#define TRY_MR01
-#define TRY_MR02
-#define TRY_MR03
-#define TRY_MR04
-#define TRY_MR05
-#define TRY_MR06
-#define TRY_MR07
-#define TRY_MR08
-#define TRY_MR10
-#define TRY_MR11
 #define TRY_MR12
-#define TRY_MR13
 #define TRY_MR14
-#define TRY_MR16
 
 
@@ -137,5 +137,5 @@
 
         sout | "------------- Initialization";
-MR01(  {string s = 'a' + 'b';           // Ãb
+MR01(  {string s = 'a' + 'b';           // (ambiguous)
         sout | s;}              )
        {string s = 'a' + "b";           // ab
@@ -149,5 +149,5 @@
         string s0 = "x";
 
-MR02(  {string s = 'a' + 'b' + s0;      // Ãx
+MR02(  {string s = 'a' + 'b' + s0;      // (ambiguous)
         sout | s;}              )
        {string s = 'a' + "b" + s0;      // abx
@@ -179,9 +179,9 @@
         sout | nl;                      //
 
-MR03(  {string s = 'a' * 3;             // aaa
+MR03(  {string s = 'a' * 3;             // (ambiguous)
         sout | s;}              )
        {string s = "b" * 3;             // bbb
         sout | s;}
-       {string s = ('a' + 'b') * 3;     // ÃÃÃ
+       {string s = ('a' + 'b') * 3;     // ÃÃÃ (expecting ambiguous, likely from #309)
         sout | s;}
        {string s = ('c' + "d") * 3;     // cdcdcd
@@ -189,5 +189,5 @@
         sout | nl;                      //
 
-MR04(  {string s = 3 * 'a';             // 291
+MR04(  {string s = 3 * 'a';             // (ambiguous)
         sout | s;}              )
        {string s = 3 * "b";             // bbb
@@ -205,5 +205,5 @@
 
         s = "";
-MR05(   s = 'a' + 'b';          // Ã
+MR05(   s = 'a' + 'b';          // (ambiguous)
         sout | s;              )
         s = 'a' + "b";          // ab
@@ -216,11 +216,11 @@
 
         s = "";
-MR06(   s = 'a' + 'b' + s;      // Ã
+MR06(   s = 'a' + 'b' + s;      // (ambiguous)
         sout | s;              )
-        s = 'a' + "b" + s;      // abÃ
-        sout | s;
-        s = "a" + 'b' + s;      // ababÃ
-        sout | s;
-        s = "a" + "b" + s;      // abababÃ
+        s = 'a' + "b" + s;      // ab
+        sout | s;
+        s = "a" + 'b' + s;      // abab
+        sout | s;
+        s = "a" + "b" + s;      // ababab
         sout | s;
         sout | nl;              //
@@ -249,9 +249,9 @@
 
         s = "";
-MR07(   s = 'a' * 3;            // aaa
+MR07(   s = 'a' * 3;            // (ambiguous)
         sout | s;              )
         s = "b" * 3;            // bbb
         sout | s;
-        s = ('a' + 'b') * 3;    // ÃÃÃ
+        s = ('a' + 'b') * 3;    // ÃÃÃ (expecting ambiguous, likely from #309)
         sout | s;
         s = ('c' + "d") * 3;    // cdcdcd
@@ -260,5 +260,5 @@
 
         s = "";
-MR08(   s = 3 * 'a';            // 291
+MR08(   s = 3 * 'a';            // (ambiguous)
         sout | s;              )
         s = 3 * "b";            // bbb
@@ -281,5 +281,5 @@
         sout | nl;                  //
 
-MR10(   sout | 'a' + 'b' + s;  )    // Ãx
+MR10(   sout | 'a' + 'b' + s;  )    // (ambiguous)
         sout | 'a' + "b" + s;       // abx
         sout | "a" + 'b' + s;       // abx
@@ -299,13 +299,13 @@
         sout | nl;                  //
 
-MR11(   sout | 'a' * 3;          )  // 291
+MR11(   sout | 'a' * 3;          )  // (ambiguous)
         sout | "b" * 3;             // bbb
-MR12(   sout | ('a' + 'b') * 3;  )  // 585
+MR12(   sout | ('a' + 'b') * 3;  )  // 585 (expecting ambiguous, likely from #309)
         sout | ('c' + "d") * 3;     // cdcdcd
         sout | nl;                  //
 
-MR13(   sout | 3 * 'a';          )  // 291
+MR13(   sout | 3 * 'a';          )  // (ambiguous)
         sout | 3 * "b";             // bbb
-MR14(   sout | 3 * ('a' + 'b');  )  // 585
+MR14(   sout | 3 * ('a' + 'b');  )  // 585 (expecting ambiguous, likely from #309)
         sout | 3 * ('c' + "d");     // cdcdcd
         sout | nl;                  //
@@ -316,5 +316,5 @@
 
 MR15(   printf( "%c\n", 'a' + 'b'); )    // (ambiguous)
-MR16(   printf( "%d\n", 'a' * 3 );  )    // 291
+MR16(   printf( "%d\n", 'a' * 3 );  )    // (ambiguous)
 
         {   // (picks arithmetic; there is no interpretation of `_ + 3` that's string)
