From b8f3902e6eed8caed15494ea5d79ce5c9ce26901 Mon Sep 17 00:00:00 2001 From: John Kerl Date: Sat, 15 Apr 2023 15:57:22 -0400 Subject: [PATCH] Treaet data-file numbers with leading + as numeric (#1269) * accept data-file numbers with leading + as numeric * augment unit-test cases * artifacts from `make dev` --- docs/src/manpage.md | 2 +- docs/src/manpage.txt | 2 +- docs/src/reference-dsl-time.md | 2 +- internal/pkg/mlrval/mlrval_infer.go | 6 ++++++ internal/pkg/scan/find.go | 3 +++ man/manpage.txt | 2 +- man/mlr.1 | 4 ++-- test/cases/dsl-pythonic-division/0001/expout | 4 ++++ test/cases/dsl-pythonic-division/0002/expout | 4 ++++ test/cases/dsl-pythonic-division/0003/expout | 4 ++++ test/cases/dsl-pythonic-division/0004/expout | 4 ++++ test/cases/dsl-pythonic-division/0005/expout | 4 ++++ test/cases/dsl-pythonic-division/0006/expout | 4 ++++ test/cases/dsl-pythonic-division/0007/expout | 4 ++++ test/cases/dsl-pythonic-division/0008/expout | 4 ++++ test/cases/dsl-pythonic-division/0009/expout | 4 ++++ test/cases/dsl-pythonic-division/0010/expout | 4 ++++ test/cases/dsl-pythonic-division/0011/expout | 4 ++++ test/cases/dsl-pythonic-division/0012/expout | 4 ++++ test/cases/dsl-pythonic-division/0013/expout | 4 ++++ test/cases/dsl-pythonic-division/0014/expout | 4 ++++ test/cases/dsl-pythonic-division/0015/expout | 4 ++++ test/cases/dsl-pythonic-division/0016/expout | 4 ++++ test/cases/dsl-type-inference/0001/expout | 4 ++++ test/cases/dsl-type-inference/0002/expout | 4 ++++ test/cases/dsl-type-inference/0004/expout | 4 ++++ test/cases/dsl-type-inference/0005/expout | 4 ++++ test/cases/dsl-type-inference/0006/expout | 4 ++++ test/cases/dsl-type-inference/0007/expout | 4 ++++ test/cases/dsl-type-inference/0008/expout | 4 ++++ test/cases/dsl-type-inference/0009/expout | 4 ++++ test/cases/dsl-type-inference/0010/expout | 4 ++++ test/cases/dsl-type-inference/0011/expout | 4 ++++ test/cases/dsl-type-inference/0012/expout | 4 ++++ test/cases/dsl-type-inference/0013/expout | 4 ++++ test/cases/dsl-type-inference/0014/expout | 4 ++++ test/cases/dsl-type-inference/0015/expout | 4 ++++ test/cases/dsl-type-inference/0016/expout | 4 ++++ test/cases/dsl-type-inference/0017/expout | 4 ++++ test/cases/dsl-type-inference/0018/expout | 4 ++++ test/cases/dsl-type-inference/0019/expout | 4 ++++ test/cases/dsl-type-inference/0020/expout | 4 ++++ test/cases/dsl-type-inference/0021/expout | 4 ++++ test/cases/dsl-type-inference/0022/expout | 4 ++++ test/cases/dsl-type-inference/0023/expout | 4 ++++ test/cases/dsl-type-inference/0024/expout | 4 ++++ test/cases/dsl-type-inference/0025/expout | 4 ++++ test/cases/dsl-type-inference/0026/expout | 4 ++++ test/cases/dsl-type-inference/0027/expout | 4 ++++ test/cases/dsl-type-inference/0028/expout | 4 ++++ test/cases/dsl-type-inference/0029/expout | 4 ++++ test/cases/dsl-type-inference/0030/expout | 4 ++++ test/cases/dsl-type-inference/0031/expout | 4 ++++ test/cases/dsl-type-inference/0032/expout | 4 ++++ test/cases/dsl-type-inference/0033/expout | 4 ++++ test/cases/dsl-type-inference/0034/expout | 4 ++++ test/cases/dsl-type-inference/0035/expout | 4 ++++ test/cases/dsl-type-inference/0036/expout | 4 ++++ test/cases/dsl-type-inference/0037/expout | 4 ++++ test/cases/dsl-type-inference/0038/expout | 4 ++++ test/cases/dsl-type-inference/0039/expout | 4 ++++ test/cases/dsl-type-inference/0040/expout | 4 ++++ test/cases/dsl-type-inference/0041/expout | 4 ++++ test/cases/dsl-type-inference/0042/expout | 4 ++++ test/cases/dsl-type-inference/0043/expout | 4 ++++ test/cases/dsl-type-inference/0044/expout | 4 ++++ test/cases/dsl-type-inference/0045/expout | 4 ++++ test/cases/dsl-type-inference/0046/expout | 4 ++++ test/cases/dsl-type-inference/0047/expout | 4 ++++ test/cases/dsl-type-inference/0048/expout | 4 ++++ test/cases/dsl-type-inference/0049/expout | 4 ++++ test/cases/dsl-type-inference/0050/expout | 4 ++++ test/cases/dsl-type-inference/0051/expout | 4 ++++ test/cases/dsl-type-inference/0052/expout | 4 ++++ test/cases/dsl-type-inference/0053/expout | 4 ++++ test/cases/dsl-type-inference/0054/expout | 4 ++++ test/cases/dsl-type-inference/0055/expout | 4 ++++ test/cases/dsl-type-inference/0056/expout | 4 ++++ test/cases/dsl-type-inference/0057/expout | 4 ++++ test/cases/dsl-type-inference/0058/expout | 4 ++++ test/cases/dsl-type-inference/0059/expout | 4 ++++ test/cases/dsl-type-inference/0060/expout | 4 ++++ test/cases/dsl-type-inference/0061/expout | 4 ++++ test/cases/dsl-type-inference/0062/expout | 4 ++++ test/cases/dsl-type-inference/0063/expout | 4 ++++ test/cases/dsl-type-inference/0064/expout | 4 ++++ test/cases/dsl-type-inference/0065/expout | 4 ++++ test/cases/dsl-type-inference/0066/expout | 4 ++++ test/cases/dsl-type-inference/0067/expout | 4 ++++ test/cases/dsl-type-inference/0068/expout | 4 ++++ test/cases/dsl-type-inference/0069/expout | 4 ++++ test/cases/dsl-type-inference/0070/expout | 4 ++++ test/cases/dsl-type-inference/0071/expout | 4 ++++ test/cases/dsl-type-inference/0072/expout | 4 ++++ test/cases/dsl-type-inference/0073/expout | 4 ++++ test/cases/dsl-type-inference/0074/expout | 4 ++++ test/cases/dsl-type-inference/0075/expout | 4 ++++ test/cases/dsl-type-inference/0076/expout | 4 ++++ test/cases/dsl-type-inference/0077/expout | 4 ++++ test/cases/dsl-type-inference/0078/expout | 4 ++++ test/cases/dsl-type-inference/0079/expout | 4 ++++ test/cases/dsl-type-inference/0080/expout | 4 ++++ test/cases/dsl-type-inference/0081/expout | 4 ++++ test/cases/dsl-type-inference/0082/expout | 4 ++++ test/cases/dsl-type-inference/0083/expout | 4 ++++ test/cases/dsl-type-inference/0084/expout | 4 ++++ test/cases/dsl-type-inference/0085/expout | 4 ++++ test/cases/dsl-type-inference/0086/expout | 4 ++++ test/cases/dsl-type-inference/0087/expout | 4 ++++ test/cases/dsl-type-inference/0088/expout | 4 ++++ test/cases/dsl-type-inference/0089/expout | 4 ++++ test/cases/dsl-type-inference/0090/expout | 4 ++++ test/cases/dsl-type-inference/0091/expout | 4 ++++ test/cases/dsl-type-inference/0092/expout | 4 ++++ test/cases/dsl-type-inference/0093/expout | 4 ++++ test/cases/dsl-type-inference/0094/expout | 4 ++++ test/cases/dsl-type-inference/0095/expout | 4 ++++ test/input/mixed-types.xtab | 4 ++++ 118 files changed, 459 insertions(+), 6 deletions(-) diff --git a/docs/src/manpage.md b/docs/src/manpage.md index e1a0ac63ad..3153b20a2c 100644 --- a/docs/src/manpage.md +++ b/docs/src/manpage.md @@ -3354,5 +3354,5 @@ MILLER(1) MILLER(1) - 2023-03-27 MILLER(1) + 2023-04-15 MILLER(1) diff --git a/docs/src/manpage.txt b/docs/src/manpage.txt index 17b05732b6..9317002fbb 100644 --- a/docs/src/manpage.txt +++ b/docs/src/manpage.txt @@ -3333,4 +3333,4 @@ MILLER(1) MILLER(1) - 2023-03-27 MILLER(1) + 2023-04-15 MILLER(1) diff --git a/docs/src/reference-dsl-time.md b/docs/src/reference-dsl-time.md index cd6210ec55..680057fb10 100644 --- a/docs/src/reference-dsl-time.md +++ b/docs/src/reference-dsl-time.md @@ -136,7 +136,7 @@ Regardless, if you specify an invalid timezone, you'll be clearly notified: mlr --from example.csv --tz This/Is/A/Typo cat
-mlr :  unknown time zone This/Is/A/Typo
+mlr: TZ environment variable appears malformed: "This/Is/A/Typo"
 
diff --git a/internal/pkg/mlrval/mlrval_infer.go b/internal/pkg/mlrval/mlrval_infer.go
index 0e8df93e5b..cf28bd260f 100644
--- a/internal/pkg/mlrval/mlrval_infer.go
+++ b/internal/pkg/mlrval/mlrval_infer.go
@@ -142,6 +142,9 @@ func inferHexInt(mv *Mlrval) *Mlrval {
 	if mv.printrep[0] == '-' {
 		input = mv.printrep[3:]
 		negate = true
+	} else if mv.printrep[0] == '+' {
+		input = mv.printrep[3:]
+		negate = false
 	} else {
 		input = mv.printrep[2:]
 		negate = false
@@ -207,6 +210,9 @@ func inferBaseInt(mv *Mlrval, base int) *Mlrval {
 	if mv.printrep[0] == '-' {
 		input = mv.printrep[3:]
 		negate = true
+	} else if mv.printrep[0] == '+' {
+		input = mv.printrep[3:]
+		negate = false
 	} else {
 		input = mv.printrep[2:]
 		negate = false
diff --git a/internal/pkg/scan/find.go b/internal/pkg/scan/find.go
index d3a9112054..1de423f302 100644
--- a/internal/pkg/scan/find.go
+++ b/internal/pkg/scan/find.go
@@ -37,6 +37,9 @@ func FindScanType(sinput string) ScanType {
 	if i0 == '-' {
 		return findScanTypePositiveNumberOrString(input[1:])
 	}
+	if i0 == '+' {
+		return findScanTypePositiveNumberOrString(input[1:])
+	}
 	if i0 >= '0' && i0 <= '9' {
 		return findScanTypePositiveNumberOrString(input)
 	}
diff --git a/man/manpage.txt b/man/manpage.txt
index 17b05732b6..9317002fbb 100644
--- a/man/manpage.txt
+++ b/man/manpage.txt
@@ -3333,4 +3333,4 @@ MILLER(1)                                                            MILLER(1)
 
 
 
-                                  2023-03-27                         MILLER(1)
+                                  2023-04-15                         MILLER(1)
diff --git a/man/mlr.1 b/man/mlr.1
index 1c50f0b025..70b2e85e5d 100644
--- a/man/mlr.1
+++ b/man/mlr.1
@@ -2,12 +2,12 @@
 .\"     Title: mlr
 .\"    Author: [see the "AUTHOR" section]
 .\" Generator: ./mkman.rb
-.\"      Date: 2023-03-27
+.\"      Date: 2023-04-15
 .\"    Manual: \ \&
 .\"    Source: \ \&
 .\"  Language: English
 .\"
-.TH "MILLER" "1" "2023-03-27" "\ \&" "\ \&"
+.TH "MILLER" "1" "2023-04-15" "\ \&" "\ \&"
 .\" -----------------------------------------------------------------
 .\" * Portability definitions
 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/test/cases/dsl-pythonic-division/0001/expout b/test/cases/dsl-pythonic-division/0001/expout
index 757d2c8614..0d4b67d061 100644
--- a/test/cases/dsl-pythonic-division/0001/expout
+++ b/test/cases/dsl-pythonic-division/0001/expout
@@ -1,13 +1,17 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 quot  7.12000000
 iquot 7.00000000
 mod   1.20000000
diff --git a/test/cases/dsl-pythonic-division/0002/expout b/test/cases/dsl-pythonic-division/0002/expout
index 60b88f2fa7..b4e98b21a3 100644
--- a/test/cases/dsl-pythonic-division/0002/expout
+++ b/test/cases/dsl-pythonic-division/0002/expout
@@ -1,13 +1,17 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 quot  7.50000000
 iquot 7
 mod   5
diff --git a/test/cases/dsl-pythonic-division/0003/expout b/test/cases/dsl-pythonic-division/0003/expout
index 4e12a72abb..584de6648e 100644
--- a/test/cases/dsl-pythonic-division/0003/expout
+++ b/test/cases/dsl-pythonic-division/0003/expout
@@ -1,13 +1,17 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 quot  -7.12000000
 iquot -8.00000000
 mod   8.80000000
diff --git a/test/cases/dsl-pythonic-division/0004/expout b/test/cases/dsl-pythonic-division/0004/expout
index 29d184588b..a41c5440ab 100644
--- a/test/cases/dsl-pythonic-division/0004/expout
+++ b/test/cases/dsl-pythonic-division/0004/expout
@@ -1,13 +1,17 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 quot  -7.50000000
 iquot -8
 mod   5
diff --git a/test/cases/dsl-pythonic-division/0005/expout b/test/cases/dsl-pythonic-division/0005/expout
index 757d2c8614..0d4b67d061 100644
--- a/test/cases/dsl-pythonic-division/0005/expout
+++ b/test/cases/dsl-pythonic-division/0005/expout
@@ -1,13 +1,17 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 quot  7.12000000
 iquot 7.00000000
 mod   1.20000000
diff --git a/test/cases/dsl-pythonic-division/0006/expout b/test/cases/dsl-pythonic-division/0006/expout
index 60b88f2fa7..b4e98b21a3 100644
--- a/test/cases/dsl-pythonic-division/0006/expout
+++ b/test/cases/dsl-pythonic-division/0006/expout
@@ -1,13 +1,17 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 quot  7.50000000
 iquot 7
 mod   5
diff --git a/test/cases/dsl-pythonic-division/0007/expout b/test/cases/dsl-pythonic-division/0007/expout
index 4e12a72abb..584de6648e 100644
--- a/test/cases/dsl-pythonic-division/0007/expout
+++ b/test/cases/dsl-pythonic-division/0007/expout
@@ -1,13 +1,17 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 quot  -7.12000000
 iquot -8.00000000
 mod   8.80000000
diff --git a/test/cases/dsl-pythonic-division/0008/expout b/test/cases/dsl-pythonic-division/0008/expout
index 29d184588b..a41c5440ab 100644
--- a/test/cases/dsl-pythonic-division/0008/expout
+++ b/test/cases/dsl-pythonic-division/0008/expout
@@ -1,13 +1,17 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 quot  -7.50000000
 iquot -8
 mod   5
diff --git a/test/cases/dsl-pythonic-division/0009/expout b/test/cases/dsl-pythonic-division/0009/expout
index 3513bb6808..9fa54f8c72 100644
--- a/test/cases/dsl-pythonic-division/0009/expout
+++ b/test/cases/dsl-pythonic-division/0009/expout
@@ -1,13 +1,17 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 quot  -7.12000000
 iquot -8.00000000
 mod   -8.80000000
diff --git a/test/cases/dsl-pythonic-division/0010/expout b/test/cases/dsl-pythonic-division/0010/expout
index 32c71f5366..5596fb0d04 100644
--- a/test/cases/dsl-pythonic-division/0010/expout
+++ b/test/cases/dsl-pythonic-division/0010/expout
@@ -1,13 +1,17 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 quot  -7.50000000
 iquot -8
 mod   -5
diff --git a/test/cases/dsl-pythonic-division/0011/expout b/test/cases/dsl-pythonic-division/0011/expout
index ebc436b6fb..2e6752035d 100644
--- a/test/cases/dsl-pythonic-division/0011/expout
+++ b/test/cases/dsl-pythonic-division/0011/expout
@@ -1,13 +1,17 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 quot  7.12000000
 iquot 7.00000000
 mod   -1.20000000
diff --git a/test/cases/dsl-pythonic-division/0012/expout b/test/cases/dsl-pythonic-division/0012/expout
index 2f7fac6312..14033d7b89 100644
--- a/test/cases/dsl-pythonic-division/0012/expout
+++ b/test/cases/dsl-pythonic-division/0012/expout
@@ -1,13 +1,17 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 quot  7.50000000
 iquot 7
 mod   -5
diff --git a/test/cases/dsl-pythonic-division/0013/expout b/test/cases/dsl-pythonic-division/0013/expout
index 3513bb6808..9fa54f8c72 100644
--- a/test/cases/dsl-pythonic-division/0013/expout
+++ b/test/cases/dsl-pythonic-division/0013/expout
@@ -1,13 +1,17 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 quot  -7.12000000
 iquot -8.00000000
 mod   -8.80000000
diff --git a/test/cases/dsl-pythonic-division/0014/expout b/test/cases/dsl-pythonic-division/0014/expout
index 32c71f5366..5596fb0d04 100644
--- a/test/cases/dsl-pythonic-division/0014/expout
+++ b/test/cases/dsl-pythonic-division/0014/expout
@@ -1,13 +1,17 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 quot  -7.50000000
 iquot -8
 mod   -5
diff --git a/test/cases/dsl-pythonic-division/0015/expout b/test/cases/dsl-pythonic-division/0015/expout
index ebc436b6fb..2e6752035d 100644
--- a/test/cases/dsl-pythonic-division/0015/expout
+++ b/test/cases/dsl-pythonic-division/0015/expout
@@ -1,13 +1,17 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 quot  7.12000000
 iquot 7.00000000
 mod   -1.20000000
diff --git a/test/cases/dsl-pythonic-division/0016/expout b/test/cases/dsl-pythonic-division/0016/expout
index 2f7fac6312..14033d7b89 100644
--- a/test/cases/dsl-pythonic-division/0016/expout
+++ b/test/cases/dsl-pythonic-division/0016/expout
@@ -1,13 +1,17 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 quot  7.50000000
 iquot 7
 mod   -5
diff --git a/test/cases/dsl-type-inference/0001/expout b/test/cases/dsl-type-inference/0001/expout
index 8cf2af4f03..8906da73fa 100644
--- a/test/cases/dsl-type-inference/0001/expout
+++ b/test/cases/dsl-type-inference/0001/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   151
diff --git a/test/cases/dsl-type-inference/0002/expout b/test/cases/dsl-type-inference/0002/expout
index d1eb241e10..20f27bee3e 100644
--- a/test/cases/dsl-type-inference/0002/expout
+++ b/test/cases/dsl-type-inference/0002/expout
@@ -1,10 +1,14 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
diff --git a/test/cases/dsl-type-inference/0004/expout b/test/cases/dsl-type-inference/0004/expout
index dbd293b554..8fa6fcc01f 100644
--- a/test/cases/dsl-type-inference/0004/expout
+++ b/test/cases/dsl-type-inference/0004/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   71.20000000
diff --git a/test/cases/dsl-type-inference/0005/expout b/test/cases/dsl-type-inference/0005/expout
index dbd293b554..8fa6fcc01f 100644
--- a/test/cases/dsl-type-inference/0005/expout
+++ b/test/cases/dsl-type-inference/0005/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   71.20000000
diff --git a/test/cases/dsl-type-inference/0006/expout b/test/cases/dsl-type-inference/0006/expout
index 919b9e0e9a..9e4b4b56ed 100644
--- a/test/cases/dsl-type-inference/0006/expout
+++ b/test/cases/dsl-type-inference/0006/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   0.00000000
diff --git a/test/cases/dsl-type-inference/0007/expout b/test/cases/dsl-type-inference/0007/expout
index 21c2d6ce32..2cd2d946e7 100644
--- a/test/cases/dsl-type-inference/0007/expout
+++ b/test/cases/dsl-type-inference/0007/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   75
diff --git a/test/cases/dsl-type-inference/0008/expout b/test/cases/dsl-type-inference/0008/expout
index 21c2d6ce32..2cd2d946e7 100644
--- a/test/cases/dsl-type-inference/0008/expout
+++ b/test/cases/dsl-type-inference/0008/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   75
diff --git a/test/cases/dsl-type-inference/0009/expout b/test/cases/dsl-type-inference/0009/expout
index d5e8fbcd22..94d02c77bb 100644
--- a/test/cases/dsl-type-inference/0009/expout
+++ b/test/cases/dsl-type-inference/0009/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   0
diff --git a/test/cases/dsl-type-inference/0010/expout b/test/cases/dsl-type-inference/0010/expout
index dbd293b554..8fa6fcc01f 100644
--- a/test/cases/dsl-type-inference/0010/expout
+++ b/test/cases/dsl-type-inference/0010/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   71.20000000
diff --git a/test/cases/dsl-type-inference/0011/expout b/test/cases/dsl-type-inference/0011/expout
index dbd293b554..8fa6fcc01f 100644
--- a/test/cases/dsl-type-inference/0011/expout
+++ b/test/cases/dsl-type-inference/0011/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   71.20000000
diff --git a/test/cases/dsl-type-inference/0012/expout b/test/cases/dsl-type-inference/0012/expout
index 919b9e0e9a..9e4b4b56ed 100644
--- a/test/cases/dsl-type-inference/0012/expout
+++ b/test/cases/dsl-type-inference/0012/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   0.00000000
diff --git a/test/cases/dsl-type-inference/0013/expout b/test/cases/dsl-type-inference/0013/expout
index 21c2d6ce32..2cd2d946e7 100644
--- a/test/cases/dsl-type-inference/0013/expout
+++ b/test/cases/dsl-type-inference/0013/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   75
diff --git a/test/cases/dsl-type-inference/0014/expout b/test/cases/dsl-type-inference/0014/expout
index 21c2d6ce32..2cd2d946e7 100644
--- a/test/cases/dsl-type-inference/0014/expout
+++ b/test/cases/dsl-type-inference/0014/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   75
diff --git a/test/cases/dsl-type-inference/0015/expout b/test/cases/dsl-type-inference/0015/expout
index d5e8fbcd22..94d02c77bb 100644
--- a/test/cases/dsl-type-inference/0015/expout
+++ b/test/cases/dsl-type-inference/0015/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   0
diff --git a/test/cases/dsl-type-inference/0016/expout b/test/cases/dsl-type-inference/0016/expout
index 1848bb44d7..d336fc72ef 100644
--- a/test/cases/dsl-type-inference/0016/expout
+++ b/test/cases/dsl-type-inference/0016/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   72.00000000
diff --git a/test/cases/dsl-type-inference/0017/expout b/test/cases/dsl-type-inference/0017/expout
index d04c62db8b..10feae7d4c 100644
--- a/test/cases/dsl-type-inference/0017/expout
+++ b/test/cases/dsl-type-inference/0017/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   -71.00000000
diff --git a/test/cases/dsl-type-inference/0018/expout b/test/cases/dsl-type-inference/0018/expout
index 919b9e0e9a..9e4b4b56ed 100644
--- a/test/cases/dsl-type-inference/0018/expout
+++ b/test/cases/dsl-type-inference/0018/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   0.00000000
diff --git a/test/cases/dsl-type-inference/0019/expout b/test/cases/dsl-type-inference/0019/expout
index 21c2d6ce32..2cd2d946e7 100644
--- a/test/cases/dsl-type-inference/0019/expout
+++ b/test/cases/dsl-type-inference/0019/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   75
diff --git a/test/cases/dsl-type-inference/0020/expout b/test/cases/dsl-type-inference/0020/expout
index ea1874d158..de73aa4a72 100644
--- a/test/cases/dsl-type-inference/0020/expout
+++ b/test/cases/dsl-type-inference/0020/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   -75
diff --git a/test/cases/dsl-type-inference/0021/expout b/test/cases/dsl-type-inference/0021/expout
index d5e8fbcd22..94d02c77bb 100644
--- a/test/cases/dsl-type-inference/0021/expout
+++ b/test/cases/dsl-type-inference/0021/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   0
diff --git a/test/cases/dsl-type-inference/0022/expout b/test/cases/dsl-type-inference/0022/expout
index 05403c566c..4521d8b5fe 100644
--- a/test/cases/dsl-type-inference/0022/expout
+++ b/test/cases/dsl-type-inference/0022/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   71.00000000
diff --git a/test/cases/dsl-type-inference/0023/expout b/test/cases/dsl-type-inference/0023/expout
index 9d9ada2c68..658d215a50 100644
--- a/test/cases/dsl-type-inference/0023/expout
+++ b/test/cases/dsl-type-inference/0023/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   -72.00000000
diff --git a/test/cases/dsl-type-inference/0024/expout b/test/cases/dsl-type-inference/0024/expout
index 919b9e0e9a..9e4b4b56ed 100644
--- a/test/cases/dsl-type-inference/0024/expout
+++ b/test/cases/dsl-type-inference/0024/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   0.00000000
diff --git a/test/cases/dsl-type-inference/0025/expout b/test/cases/dsl-type-inference/0025/expout
index 21c2d6ce32..2cd2d946e7 100644
--- a/test/cases/dsl-type-inference/0025/expout
+++ b/test/cases/dsl-type-inference/0025/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   75
diff --git a/test/cases/dsl-type-inference/0026/expout b/test/cases/dsl-type-inference/0026/expout
index ea1874d158..de73aa4a72 100644
--- a/test/cases/dsl-type-inference/0026/expout
+++ b/test/cases/dsl-type-inference/0026/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   -75
diff --git a/test/cases/dsl-type-inference/0027/expout b/test/cases/dsl-type-inference/0027/expout
index d5e8fbcd22..94d02c77bb 100644
--- a/test/cases/dsl-type-inference/0027/expout
+++ b/test/cases/dsl-type-inference/0027/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   0
diff --git a/test/cases/dsl-type-inference/0028/expout b/test/cases/dsl-type-inference/0028/expout
index 05403c566c..4521d8b5fe 100644
--- a/test/cases/dsl-type-inference/0028/expout
+++ b/test/cases/dsl-type-inference/0028/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   71.00000000
diff --git a/test/cases/dsl-type-inference/0029/expout b/test/cases/dsl-type-inference/0029/expout
index d04c62db8b..10feae7d4c 100644
--- a/test/cases/dsl-type-inference/0029/expout
+++ b/test/cases/dsl-type-inference/0029/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   -71.00000000
diff --git a/test/cases/dsl-type-inference/0030/expout b/test/cases/dsl-type-inference/0030/expout
index 919b9e0e9a..9e4b4b56ed 100644
--- a/test/cases/dsl-type-inference/0030/expout
+++ b/test/cases/dsl-type-inference/0030/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   0.00000000
diff --git a/test/cases/dsl-type-inference/0031/expout b/test/cases/dsl-type-inference/0031/expout
index 21c2d6ce32..2cd2d946e7 100644
--- a/test/cases/dsl-type-inference/0031/expout
+++ b/test/cases/dsl-type-inference/0031/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   75
diff --git a/test/cases/dsl-type-inference/0032/expout b/test/cases/dsl-type-inference/0032/expout
index ea1874d158..de73aa4a72 100644
--- a/test/cases/dsl-type-inference/0032/expout
+++ b/test/cases/dsl-type-inference/0032/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   -75
diff --git a/test/cases/dsl-type-inference/0033/expout b/test/cases/dsl-type-inference/0033/expout
index d5e8fbcd22..94d02c77bb 100644
--- a/test/cases/dsl-type-inference/0033/expout
+++ b/test/cases/dsl-type-inference/0033/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   0
diff --git a/test/cases/dsl-type-inference/0034/expout b/test/cases/dsl-type-inference/0034/expout
index 05403c566c..4521d8b5fe 100644
--- a/test/cases/dsl-type-inference/0034/expout
+++ b/test/cases/dsl-type-inference/0034/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   71.00000000
diff --git a/test/cases/dsl-type-inference/0035/expout b/test/cases/dsl-type-inference/0035/expout
index d04c62db8b..10feae7d4c 100644
--- a/test/cases/dsl-type-inference/0035/expout
+++ b/test/cases/dsl-type-inference/0035/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   -71.00000000
diff --git a/test/cases/dsl-type-inference/0036/expout b/test/cases/dsl-type-inference/0036/expout
index 919b9e0e9a..9e4b4b56ed 100644
--- a/test/cases/dsl-type-inference/0036/expout
+++ b/test/cases/dsl-type-inference/0036/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   0.00000000
diff --git a/test/cases/dsl-type-inference/0037/expout b/test/cases/dsl-type-inference/0037/expout
index 21c2d6ce32..2cd2d946e7 100644
--- a/test/cases/dsl-type-inference/0037/expout
+++ b/test/cases/dsl-type-inference/0037/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   75
diff --git a/test/cases/dsl-type-inference/0038/expout b/test/cases/dsl-type-inference/0038/expout
index ea1874d158..de73aa4a72 100644
--- a/test/cases/dsl-type-inference/0038/expout
+++ b/test/cases/dsl-type-inference/0038/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   -75
diff --git a/test/cases/dsl-type-inference/0039/expout b/test/cases/dsl-type-inference/0039/expout
index d5e8fbcd22..94d02c77bb 100644
--- a/test/cases/dsl-type-inference/0039/expout
+++ b/test/cases/dsl-type-inference/0039/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   0
diff --git a/test/cases/dsl-type-inference/0040/expout b/test/cases/dsl-type-inference/0040/expout
index 075dbac1d9..37891f3c6a 100644
--- a/test/cases/dsl-type-inference/0040/expout
+++ b/test/cases/dsl-type-inference/0040/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   1.00000000
diff --git a/test/cases/dsl-type-inference/0041/expout b/test/cases/dsl-type-inference/0041/expout
index 75c8f1d3eb..b529f9d0ff 100644
--- a/test/cases/dsl-type-inference/0041/expout
+++ b/test/cases/dsl-type-inference/0041/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   -1.00000000
diff --git a/test/cases/dsl-type-inference/0042/expout b/test/cases/dsl-type-inference/0042/expout
index 919b9e0e9a..9e4b4b56ed 100644
--- a/test/cases/dsl-type-inference/0042/expout
+++ b/test/cases/dsl-type-inference/0042/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   0.00000000
diff --git a/test/cases/dsl-type-inference/0043/expout b/test/cases/dsl-type-inference/0043/expout
index 2ddc9ce0e6..5f9dc4dd25 100644
--- a/test/cases/dsl-type-inference/0043/expout
+++ b/test/cases/dsl-type-inference/0043/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   1
diff --git a/test/cases/dsl-type-inference/0044/expout b/test/cases/dsl-type-inference/0044/expout
index d3f11bcd42..361548a772 100644
--- a/test/cases/dsl-type-inference/0044/expout
+++ b/test/cases/dsl-type-inference/0044/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   -1
diff --git a/test/cases/dsl-type-inference/0045/expout b/test/cases/dsl-type-inference/0045/expout
index d5e8fbcd22..94d02c77bb 100644
--- a/test/cases/dsl-type-inference/0045/expout
+++ b/test/cases/dsl-type-inference/0045/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   0
diff --git a/test/cases/dsl-type-inference/0046/expout b/test/cases/dsl-type-inference/0046/expout
index 075dbac1d9..37891f3c6a 100644
--- a/test/cases/dsl-type-inference/0046/expout
+++ b/test/cases/dsl-type-inference/0046/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   1.00000000
diff --git a/test/cases/dsl-type-inference/0047/expout b/test/cases/dsl-type-inference/0047/expout
index 75c8f1d3eb..b529f9d0ff 100644
--- a/test/cases/dsl-type-inference/0047/expout
+++ b/test/cases/dsl-type-inference/0047/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   -1.00000000
diff --git a/test/cases/dsl-type-inference/0048/expout b/test/cases/dsl-type-inference/0048/expout
index 919b9e0e9a..9e4b4b56ed 100644
--- a/test/cases/dsl-type-inference/0048/expout
+++ b/test/cases/dsl-type-inference/0048/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   0.00000000
diff --git a/test/cases/dsl-type-inference/0049/expout b/test/cases/dsl-type-inference/0049/expout
index 2ddc9ce0e6..5f9dc4dd25 100644
--- a/test/cases/dsl-type-inference/0049/expout
+++ b/test/cases/dsl-type-inference/0049/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   1
diff --git a/test/cases/dsl-type-inference/0050/expout b/test/cases/dsl-type-inference/0050/expout
index d3f11bcd42..361548a772 100644
--- a/test/cases/dsl-type-inference/0050/expout
+++ b/test/cases/dsl-type-inference/0050/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   -1
diff --git a/test/cases/dsl-type-inference/0051/expout b/test/cases/dsl-type-inference/0051/expout
index d5e8fbcd22..94d02c77bb 100644
--- a/test/cases/dsl-type-inference/0051/expout
+++ b/test/cases/dsl-type-inference/0051/expout
@@ -1,11 +1,15 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 y   0
diff --git a/test/cases/dsl-type-inference/0052/expout b/test/cases/dsl-type-inference/0052/expout
index d282edc75e..23ffcd7dc6 100644
--- a/test/cases/dsl-type-inference/0052/expout
+++ b/test/cases/dsl-type-inference/0052/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 min 71.20000000
 max 73.40000000
diff --git a/test/cases/dsl-type-inference/0053/expout b/test/cases/dsl-type-inference/0053/expout
index 8e775a37e4..6ed80cc36b 100644
--- a/test/cases/dsl-type-inference/0053/expout
+++ b/test/cases/dsl-type-inference/0053/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 min 71.20000000
 max 76.00000000
diff --git a/test/cases/dsl-type-inference/0054/expout b/test/cases/dsl-type-inference/0054/expout
index a60a32a63e..677f5dc52a 100644
--- a/test/cases/dsl-type-inference/0054/expout
+++ b/test/cases/dsl-type-inference/0054/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 min 73.40000000
 max 75.00000000
diff --git a/test/cases/dsl-type-inference/0055/expout b/test/cases/dsl-type-inference/0055/expout
index c643ab3525..98397d62a3 100644
--- a/test/cases/dsl-type-inference/0055/expout
+++ b/test/cases/dsl-type-inference/0055/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 min 75
 max 76
diff --git a/test/cases/dsl-type-inference/0056/expout b/test/cases/dsl-type-inference/0056/expout
index d282edc75e..23ffcd7dc6 100644
--- a/test/cases/dsl-type-inference/0056/expout
+++ b/test/cases/dsl-type-inference/0056/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 min 71.20000000
 max 73.40000000
diff --git a/test/cases/dsl-type-inference/0057/expout b/test/cases/dsl-type-inference/0057/expout
index 8e775a37e4..6ed80cc36b 100644
--- a/test/cases/dsl-type-inference/0057/expout
+++ b/test/cases/dsl-type-inference/0057/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 min 71.20000000
 max 76.00000000
diff --git a/test/cases/dsl-type-inference/0058/expout b/test/cases/dsl-type-inference/0058/expout
index a60a32a63e..677f5dc52a 100644
--- a/test/cases/dsl-type-inference/0058/expout
+++ b/test/cases/dsl-type-inference/0058/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 min 73.40000000
 max 75.00000000
diff --git a/test/cases/dsl-type-inference/0059/expout b/test/cases/dsl-type-inference/0059/expout
index c643ab3525..98397d62a3 100644
--- a/test/cases/dsl-type-inference/0059/expout
+++ b/test/cases/dsl-type-inference/0059/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 min 75
 max 76
diff --git a/test/cases/dsl-type-inference/0060/expout b/test/cases/dsl-type-inference/0060/expout
index d282edc75e..23ffcd7dc6 100644
--- a/test/cases/dsl-type-inference/0060/expout
+++ b/test/cases/dsl-type-inference/0060/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 min 71.20000000
 max 73.40000000
diff --git a/test/cases/dsl-type-inference/0061/expout b/test/cases/dsl-type-inference/0061/expout
index 8e775a37e4..6ed80cc36b 100644
--- a/test/cases/dsl-type-inference/0061/expout
+++ b/test/cases/dsl-type-inference/0061/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 min 71.20000000
 max 76.00000000
diff --git a/test/cases/dsl-type-inference/0062/expout b/test/cases/dsl-type-inference/0062/expout
index a60a32a63e..677f5dc52a 100644
--- a/test/cases/dsl-type-inference/0062/expout
+++ b/test/cases/dsl-type-inference/0062/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 min 73.40000000
 max 75.00000000
diff --git a/test/cases/dsl-type-inference/0063/expout b/test/cases/dsl-type-inference/0063/expout
index c643ab3525..98397d62a3 100644
--- a/test/cases/dsl-type-inference/0063/expout
+++ b/test/cases/dsl-type-inference/0063/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 min 75
 max 76
diff --git a/test/cases/dsl-type-inference/0064/expout b/test/cases/dsl-type-inference/0064/expout
index d282edc75e..23ffcd7dc6 100644
--- a/test/cases/dsl-type-inference/0064/expout
+++ b/test/cases/dsl-type-inference/0064/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 min 71.20000000
 max 73.40000000
diff --git a/test/cases/dsl-type-inference/0065/expout b/test/cases/dsl-type-inference/0065/expout
index 8e775a37e4..6ed80cc36b 100644
--- a/test/cases/dsl-type-inference/0065/expout
+++ b/test/cases/dsl-type-inference/0065/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 min 71.20000000
 max 76.00000000
diff --git a/test/cases/dsl-type-inference/0066/expout b/test/cases/dsl-type-inference/0066/expout
index a60a32a63e..677f5dc52a 100644
--- a/test/cases/dsl-type-inference/0066/expout
+++ b/test/cases/dsl-type-inference/0066/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 min 73.40000000
 max 75.00000000
diff --git a/test/cases/dsl-type-inference/0067/expout b/test/cases/dsl-type-inference/0067/expout
index c643ab3525..98397d62a3 100644
--- a/test/cases/dsl-type-inference/0067/expout
+++ b/test/cases/dsl-type-inference/0067/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 min 75
 max 76
diff --git a/test/cases/dsl-type-inference/0068/expout b/test/cases/dsl-type-inference/0068/expout
index 0fa3178e47..638418b2a7 100644
--- a/test/cases/dsl-type-inference/0068/expout
+++ b/test/cases/dsl-type-inference/0068/expout
@@ -1,12 +1,16 @@
 pf1  71.20000000
 nf1  -71.20000000
+tf1  71.20000000
 zf   0.00000000
 pf2  73.40000000
 nf2  -73.40000000
+tf2  73.40000000
 pi1  75
 ni1  -75
+ti1  +75
 zi   0
 pi2  76
 ni2  -76
+ti2  +76
 sum  144.60000000
 diff -2.20000000
diff --git a/test/cases/dsl-type-inference/0069/expout b/test/cases/dsl-type-inference/0069/expout
index dc911d1ce2..fc5add129f 100644
--- a/test/cases/dsl-type-inference/0069/expout
+++ b/test/cases/dsl-type-inference/0069/expout
@@ -1,12 +1,16 @@
 pf1  71.20000000
 nf1  -71.20000000
+tf1  71.20000000
 zf   0.00000000
 pf2  73.40000000
 nf2  -73.40000000
+tf2  73.40000000
 pi1  75
 ni1  -75
+ti1  +75
 zi   0
 pi2  76
 ni2  -76
+ti2  +76
 sum  147.20000000
 diff -4.80000000
diff --git a/test/cases/dsl-type-inference/0070/expout b/test/cases/dsl-type-inference/0070/expout
index 8d1b2feeb9..2f292ea20b 100644
--- a/test/cases/dsl-type-inference/0070/expout
+++ b/test/cases/dsl-type-inference/0070/expout
@@ -1,12 +1,16 @@
 pf1  71.20000000
 nf1  -71.20000000
+tf1  71.20000000
 zf   0.00000000
 pf2  73.40000000
 nf2  -73.40000000
+tf2  73.40000000
 pi1  75
 ni1  -75
+ti1  +75
 zi   0
 pi2  76
 ni2  -76
+ti2  +76
 sum  148.40000000
 diff 1.60000000
diff --git a/test/cases/dsl-type-inference/0071/expout b/test/cases/dsl-type-inference/0071/expout
index 7f1f0f3176..bed734ee28 100644
--- a/test/cases/dsl-type-inference/0071/expout
+++ b/test/cases/dsl-type-inference/0071/expout
@@ -1,12 +1,16 @@
 pf1  71.20000000
 nf1  -71.20000000
+tf1  71.20000000
 zf   0.00000000
 pf2  73.40000000
 nf2  -73.40000000
+tf2  73.40000000
 pi1  75
 ni1  -75
+ti1  +75
 zi   0
 pi2  76
 ni2  -76
+ti2  +76
 sum  151
 diff -1
diff --git a/test/cases/dsl-type-inference/0072/expout b/test/cases/dsl-type-inference/0072/expout
index 0fa3178e47..638418b2a7 100644
--- a/test/cases/dsl-type-inference/0072/expout
+++ b/test/cases/dsl-type-inference/0072/expout
@@ -1,12 +1,16 @@
 pf1  71.20000000
 nf1  -71.20000000
+tf1  71.20000000
 zf   0.00000000
 pf2  73.40000000
 nf2  -73.40000000
+tf2  73.40000000
 pi1  75
 ni1  -75
+ti1  +75
 zi   0
 pi2  76
 ni2  -76
+ti2  +76
 sum  144.60000000
 diff -2.20000000
diff --git a/test/cases/dsl-type-inference/0073/expout b/test/cases/dsl-type-inference/0073/expout
index dc911d1ce2..fc5add129f 100644
--- a/test/cases/dsl-type-inference/0073/expout
+++ b/test/cases/dsl-type-inference/0073/expout
@@ -1,12 +1,16 @@
 pf1  71.20000000
 nf1  -71.20000000
+tf1  71.20000000
 zf   0.00000000
 pf2  73.40000000
 nf2  -73.40000000
+tf2  73.40000000
 pi1  75
 ni1  -75
+ti1  +75
 zi   0
 pi2  76
 ni2  -76
+ti2  +76
 sum  147.20000000
 diff -4.80000000
diff --git a/test/cases/dsl-type-inference/0074/expout b/test/cases/dsl-type-inference/0074/expout
index 8d1b2feeb9..2f292ea20b 100644
--- a/test/cases/dsl-type-inference/0074/expout
+++ b/test/cases/dsl-type-inference/0074/expout
@@ -1,12 +1,16 @@
 pf1  71.20000000
 nf1  -71.20000000
+tf1  71.20000000
 zf   0.00000000
 pf2  73.40000000
 nf2  -73.40000000
+tf2  73.40000000
 pi1  75
 ni1  -75
+ti1  +75
 zi   0
 pi2  76
 ni2  -76
+ti2  +76
 sum  148.40000000
 diff 1.60000000
diff --git a/test/cases/dsl-type-inference/0075/expout b/test/cases/dsl-type-inference/0075/expout
index 7f1f0f3176..bed734ee28 100644
--- a/test/cases/dsl-type-inference/0075/expout
+++ b/test/cases/dsl-type-inference/0075/expout
@@ -1,12 +1,16 @@
 pf1  71.20000000
 nf1  -71.20000000
+tf1  71.20000000
 zf   0.00000000
 pf2  73.40000000
 nf2  -73.40000000
+tf2  73.40000000
 pi1  75
 ni1  -75
+ti1  +75
 zi   0
 pi2  76
 ni2  -76
+ti2  +76
 sum  151
 diff -1
diff --git a/test/cases/dsl-type-inference/0076/expout b/test/cases/dsl-type-inference/0076/expout
index c4e520059a..b12e7b3bd7 100644
--- a/test/cases/dsl-type-inference/0076/expout
+++ b/test/cases/dsl-type-inference/0076/expout
@@ -1,12 +1,16 @@
 pf1  71.20000000
 nf1  -71.20000000
+tf1  71.20000000
 zf   0.00000000
 pf2  73.40000000
 nf2  -73.40000000
+tf2  73.40000000
 pi1  75
 ni1  -75
+ti1  +75
 zi   0
 pi2  76
 ni2  -76
+ti2  +76
 prod 5226.08000000
 quot 0.97002725
diff --git a/test/cases/dsl-type-inference/0077/expout b/test/cases/dsl-type-inference/0077/expout
index e9d0433884..4417e61764 100644
--- a/test/cases/dsl-type-inference/0077/expout
+++ b/test/cases/dsl-type-inference/0077/expout
@@ -1,12 +1,16 @@
 pf1  71.20000000
 nf1  -71.20000000
+tf1  71.20000000
 zf   0.00000000
 pf2  73.40000000
 nf2  -73.40000000
+tf2  73.40000000
 pi1  75
 ni1  -75
+ti1  +75
 zi   0
 pi2  76
 ni2  -76
+ti2  +76
 prod 5411.20000000
 quot 0.93684211
diff --git a/test/cases/dsl-type-inference/0078/expout b/test/cases/dsl-type-inference/0078/expout
index 8bca95465c..c90d8c3a1a 100644
--- a/test/cases/dsl-type-inference/0078/expout
+++ b/test/cases/dsl-type-inference/0078/expout
@@ -1,12 +1,16 @@
 pf1  71.20000000
 nf1  -71.20000000
+tf1  71.20000000
 zf   0.00000000
 pf2  73.40000000
 nf2  -73.40000000
+tf2  73.40000000
 pi1  75
 ni1  -75
+ti1  +75
 zi   0
 pi2  76
 ni2  -76
+ti2  +76
 prod 5505.00000000
 quot 1.02179837
diff --git a/test/cases/dsl-type-inference/0079/expout b/test/cases/dsl-type-inference/0079/expout
index 3be9daf0d0..772d2e30a6 100644
--- a/test/cases/dsl-type-inference/0079/expout
+++ b/test/cases/dsl-type-inference/0079/expout
@@ -1,12 +1,16 @@
 pf1  71.20000000
 nf1  -71.20000000
+tf1  71.20000000
 zf   0.00000000
 pf2  73.40000000
 nf2  -73.40000000
+tf2  73.40000000
 pi1  75
 ni1  -75
+ti1  +75
 zi   0
 pi2  76
 ni2  -76
+ti2  +76
 prod 5700
 quot 0.98684211
diff --git a/test/cases/dsl-type-inference/0080/expout b/test/cases/dsl-type-inference/0080/expout
index c4e520059a..b12e7b3bd7 100644
--- a/test/cases/dsl-type-inference/0080/expout
+++ b/test/cases/dsl-type-inference/0080/expout
@@ -1,12 +1,16 @@
 pf1  71.20000000
 nf1  -71.20000000
+tf1  71.20000000
 zf   0.00000000
 pf2  73.40000000
 nf2  -73.40000000
+tf2  73.40000000
 pi1  75
 ni1  -75
+ti1  +75
 zi   0
 pi2  76
 ni2  -76
+ti2  +76
 prod 5226.08000000
 quot 0.97002725
diff --git a/test/cases/dsl-type-inference/0081/expout b/test/cases/dsl-type-inference/0081/expout
index e9d0433884..4417e61764 100644
--- a/test/cases/dsl-type-inference/0081/expout
+++ b/test/cases/dsl-type-inference/0081/expout
@@ -1,12 +1,16 @@
 pf1  71.20000000
 nf1  -71.20000000
+tf1  71.20000000
 zf   0.00000000
 pf2  73.40000000
 nf2  -73.40000000
+tf2  73.40000000
 pi1  75
 ni1  -75
+ti1  +75
 zi   0
 pi2  76
 ni2  -76
+ti2  +76
 prod 5411.20000000
 quot 0.93684211
diff --git a/test/cases/dsl-type-inference/0082/expout b/test/cases/dsl-type-inference/0082/expout
index 8bca95465c..c90d8c3a1a 100644
--- a/test/cases/dsl-type-inference/0082/expout
+++ b/test/cases/dsl-type-inference/0082/expout
@@ -1,12 +1,16 @@
 pf1  71.20000000
 nf1  -71.20000000
+tf1  71.20000000
 zf   0.00000000
 pf2  73.40000000
 nf2  -73.40000000
+tf2  73.40000000
 pi1  75
 ni1  -75
+ti1  +75
 zi   0
 pi2  76
 ni2  -76
+ti2  +76
 prod 5505.00000000
 quot 1.02179837
diff --git a/test/cases/dsl-type-inference/0083/expout b/test/cases/dsl-type-inference/0083/expout
index 3be9daf0d0..772d2e30a6 100644
--- a/test/cases/dsl-type-inference/0083/expout
+++ b/test/cases/dsl-type-inference/0083/expout
@@ -1,12 +1,16 @@
 pf1  71.20000000
 nf1  -71.20000000
+tf1  71.20000000
 zf   0.00000000
 pf2  73.40000000
 nf2  -73.40000000
+tf2  73.40000000
 pi1  75
 ni1  -75
+ti1  +75
 zi   0
 pi2  76
 ni2  -76
+ti2  +76
 prod 5700
 quot 0.98684211
diff --git a/test/cases/dsl-type-inference/0084/expout b/test/cases/dsl-type-inference/0084/expout
index 23b9a78e55..7958e70982 100644
--- a/test/cases/dsl-type-inference/0084/expout
+++ b/test/cases/dsl-type-inference/0084/expout
@@ -1,12 +1,16 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 iquot 0.00000000
 mod   71.20000000
diff --git a/test/cases/dsl-type-inference/0085/expout b/test/cases/dsl-type-inference/0085/expout
index 23b9a78e55..7958e70982 100644
--- a/test/cases/dsl-type-inference/0085/expout
+++ b/test/cases/dsl-type-inference/0085/expout
@@ -1,12 +1,16 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 iquot 0.00000000
 mod   71.20000000
diff --git a/test/cases/dsl-type-inference/0086/expout b/test/cases/dsl-type-inference/0086/expout
index 3f1f1ee5b0..6056d16c8a 100644
--- a/test/cases/dsl-type-inference/0086/expout
+++ b/test/cases/dsl-type-inference/0086/expout
@@ -1,12 +1,16 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 iquot 1.00000000
 mod   1.60000000
diff --git a/test/cases/dsl-type-inference/0087/expout b/test/cases/dsl-type-inference/0087/expout
index 53096d8498..50ac3f3143 100644
--- a/test/cases/dsl-type-inference/0087/expout
+++ b/test/cases/dsl-type-inference/0087/expout
@@ -1,12 +1,16 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 iquot 0
 mod   75
diff --git a/test/cases/dsl-type-inference/0088/expout b/test/cases/dsl-type-inference/0088/expout
index 23b9a78e55..7958e70982 100644
--- a/test/cases/dsl-type-inference/0088/expout
+++ b/test/cases/dsl-type-inference/0088/expout
@@ -1,12 +1,16 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 iquot 0.00000000
 mod   71.20000000
diff --git a/test/cases/dsl-type-inference/0089/expout b/test/cases/dsl-type-inference/0089/expout
index 23b9a78e55..7958e70982 100644
--- a/test/cases/dsl-type-inference/0089/expout
+++ b/test/cases/dsl-type-inference/0089/expout
@@ -1,12 +1,16 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 iquot 0.00000000
 mod   71.20000000
diff --git a/test/cases/dsl-type-inference/0090/expout b/test/cases/dsl-type-inference/0090/expout
index 3f1f1ee5b0..6056d16c8a 100644
--- a/test/cases/dsl-type-inference/0090/expout
+++ b/test/cases/dsl-type-inference/0090/expout
@@ -1,12 +1,16 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 iquot 1.00000000
 mod   1.60000000
diff --git a/test/cases/dsl-type-inference/0091/expout b/test/cases/dsl-type-inference/0091/expout
index 53096d8498..50ac3f3143 100644
--- a/test/cases/dsl-type-inference/0091/expout
+++ b/test/cases/dsl-type-inference/0091/expout
@@ -1,12 +1,16 @@
 pf1   71.20000000
 nf1   -71.20000000
+tf1   71.20000000
 zf    0.00000000
 pf2   73.40000000
 nf2   -73.40000000
+tf2   73.40000000
 pi1   75
 ni1   -75
+ti1   +75
 zi    0
 pi2   76
 ni2   -76
+ti2   +76
 iquot 0
 mod   75
diff --git a/test/cases/dsl-type-inference/0092/expout b/test/cases/dsl-type-inference/0092/expout
index a290adbe37..00542528ee 100644
--- a/test/cases/dsl-type-inference/0092/expout
+++ b/test/cases/dsl-type-inference/0092/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 a   70.00000000
 b   70.00000000
diff --git a/test/cases/dsl-type-inference/0093/expout b/test/cases/dsl-type-inference/0093/expout
index a290adbe37..00542528ee 100644
--- a/test/cases/dsl-type-inference/0093/expout
+++ b/test/cases/dsl-type-inference/0093/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 a   70.00000000
 b   70.00000000
diff --git a/test/cases/dsl-type-inference/0094/expout b/test/cases/dsl-type-inference/0094/expout
index 823138b847..b9daf5200f 100644
--- a/test/cases/dsl-type-inference/0094/expout
+++ b/test/cases/dsl-type-inference/0094/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 a   80.00000000
 b   80.00000000
diff --git a/test/cases/dsl-type-inference/0095/expout b/test/cases/dsl-type-inference/0095/expout
index a10429d424..5422ac07c4 100644
--- a/test/cases/dsl-type-inference/0095/expout
+++ b/test/cases/dsl-type-inference/0095/expout
@@ -1,12 +1,16 @@
 pf1 71.20000000
 nf1 -71.20000000
+tf1 71.20000000
 zf  0.00000000
 pf2 73.40000000
 nf2 -73.40000000
+tf2 73.40000000
 pi1 75
 ni1 -75
+ti1 +75
 zi  0
 pi2 76
 ni2 -76
+ti2 +76
 a   80
 b   80
diff --git a/test/input/mixed-types.xtab b/test/input/mixed-types.xtab
index 2a47e04a36..da9fdacafd 100644
--- a/test/input/mixed-types.xtab
+++ b/test/input/mixed-types.xtab
@@ -1,10 +1,14 @@
 pf1  71.2
 nf1 -71.2
+tf1 +71.2
 zf    0.0
 pf2  73.4
 nf2 -73.4
+tf2 +73.4
 pi1  75
 ni1 -75
+ti1 +75
 zi    0
 pi2  76
 ni2 -76
+ti2 +76