aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2025-01-01 01:39:18 +0000
committerMichael Williamson <mike@zwobble.org>2025-01-01 09:45:58 +0000
commitb65c719e2b65a9662b6170b0b53dfed9f1a3edcd (patch)
tree6700b1a717d01a83b644dd06eb508e12a43b492c /examples
parent0df6725da8a0953c5643c5692c5244826e448d09 (diff)
Use JSON5 instead of TOML for config
Diffstat (limited to 'examples')
-rw-r--r--examples/00-missing-main/shed.json514
-rw-r--r--examples/00-missing-main/shed.toml7
-rw-r--r--examples/01-true/shed.json514
-rw-r--r--examples/01-true/shed.toml7
-rw-r--r--examples/02-hello-world/shed.json514
-rw-r--r--examples/02-hello-world/shed.toml7
-rw-r--r--examples/03-val/shed.json514
-rw-r--r--examples/03-val/shed.toml7
-rw-r--r--examples/04-val-as-namespace-statement/shed.json514
-rw-r--r--examples/04-val-as-namespace-statement/shed.toml7
-rw-r--r--examples/05-string-add/shed.json514
-rw-r--r--examples/05-string-add/shed.toml7
-rw-r--r--examples/06-if/shed.json514
-rw-r--r--examples/06-if/shed.toml7
-rw-r--r--examples/07-mutual-recursion/shed.json514
-rw-r--r--examples/07-mutual-recursion/shed.toml7
-rw-r--r--examples/08-blocks/shed.json514
-rw-r--r--examples/08-blocks/shed.toml7
-rw-r--r--examples/09-var/shed.json514
-rw-r--r--examples/09-var/shed.toml7
-rw-r--r--examples/10-while/shed.json514
-rw-r--r--examples/10-while/shed.toml7
-rw-r--r--examples/11-tuples/shed.json514
-rw-r--r--examples/11-tuples/shed.toml7
-rw-r--r--examples/12-named-args/shed.json514
-rw-r--r--examples/12-named-args/shed.toml7
-rw-r--r--examples/13-target-ignore/shed.json514
-rw-r--r--examples/13-target-ignore/shed.toml7
-rw-r--r--examples/14-structs/shed.json514
-rw-r--r--examples/14-structs/shed.toml7
-rw-r--r--examples/15-struct-hoisting/shed.json514
-rw-r--r--examples/15-struct-hoisting/shed.toml7
-rw-r--r--examples/16-struct-positional-fields/shed.json514
-rw-r--r--examples/16-struct-positional-fields/shed.toml7
-rw-r--r--examples/17-sums/shed.json514
-rw-r--r--examples/17-sums/shed.toml7
-rw-r--r--examples/18-import/shed.json514
-rw-r--r--examples/18-import/shed.toml7
-rw-r--r--examples/19-function-expression/shed.json514
-rw-r--r--examples/19-function-expression/shed.toml7
-rw-r--r--examples/20-function-expression-infer-return-type/shed.json514
-rw-r--r--examples/20-function-expression-infer-return-type/shed.toml7
-rw-r--r--examples/21-function-expression-infer-param-type/shed.json514
-rw-r--r--examples/21-function-expression-infer-param-type/shed.toml7
-rw-r--r--examples/22-effect-resume/shed.json514
-rw-r--r--examples/22-effect-resume/shed.toml7
-rw-r--r--examples/23-effect-resume-with-value/shed.json514
-rw-r--r--examples/23-effect-resume-with-value/shed.toml7
-rw-r--r--examples/24-effect-with-state/shed.json514
-rw-r--r--examples/24-effect-with-state/shed.toml7
-rw-r--r--examples/25-effect-handler-pop/shed.json514
-rw-r--r--examples/25-effect-handler-pop/shed.toml7
-rw-r--r--examples/26-effect-handler-pop-on-return/shed.json514
-rw-r--r--examples/26-effect-handler-pop-on-return/shed.toml7
-rw-r--r--examples/27-effect-handler-nested/shed.json514
-rw-r--r--examples/27-effect-handler-nested/shed.toml7
-rw-r--r--examples/28-effect-in-handler/shed.json514
-rw-r--r--examples/28-effect-in-handler/shed.toml7
-rw-r--r--examples/29-effect-break/shed.json514
-rw-r--r--examples/29-effect-break/shed.toml7
-rw-r--r--examples/30-generic-structs/shed.json514
-rw-r--r--examples/30-generic-structs/shed.toml7
-rw-r--r--examples/31-generic-sums/shed.json514
-rw-r--r--examples/31-generic-sums/shed.toml7
-rw-r--r--examples/32-generic-structs-and-sums-inferred-type-args/shed.json514
-rw-r--r--examples/32-generic-structs-and-sums-inferred-type-args/shed.toml7
-rw-r--r--examples/33-generic-functions/shed.json514
-rw-r--r--examples/33-generic-functions/shed.toml7
-rw-r--r--examples/34-generic-effects/shed.json514
-rw-r--r--examples/34-generic-effects/shed.toml7
-rw-r--r--examples/35-struct-methods/shed.json514
-rw-r--r--examples/35-struct-methods/shed.toml7
-rw-r--r--examples/36-struct-method-references/shed.json514
-rw-r--r--examples/36-struct-method-references/shed.toml7
-rw-r--r--examples/37-generic-struct-methods/shed.json514
-rw-r--r--examples/37-generic-struct-methods/shed.toml7
76 files changed, 532 insertions, 266 deletions
diff --git a/examples/00-missing-main/shed.json5 b/examples/00-missing-main/shed.json5
new file mode 100644
index 00000000..f7af8927
--- /dev/null
+++ b/examples/00-missing-main/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "true",
+ mainNamespace: "True",
+ },
+ ],
+ examples: [
+ {
+ bin: "true",
+ expectedError: "Namespace True has no field main",
+ },
+ ],
+}
diff --git a/examples/00-missing-main/shed.toml b/examples/00-missing-main/shed.toml
deleted file mode 100644
index c01af0d7..00000000
--- a/examples/00-missing-main/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "true"
-main-namespace = "True"
-
-[[shed.examples]]
-bin = "true"
-expected-error = "Namespace True has no field main"
diff --git a/examples/01-true/shed.json5 b/examples/01-true/shed.json5
new file mode 100644
index 00000000..a6d9b992
--- /dev/null
+++ b/examples/01-true/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "true",
+ mainNamespace: "True",
+ },
+ ],
+ examples: [
+ {
+ bin: "true",
+ expectedOutput: "",
+ },
+ ],
+}
diff --git a/examples/01-true/shed.toml b/examples/01-true/shed.toml
deleted file mode 100644
index 9acf2972..00000000
--- a/examples/01-true/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "true"
-main-namespace = "True"
-
-[[shed.examples]]
-bin = "true"
-expected-output = ""
diff --git a/examples/02-hello-world/shed.json5 b/examples/02-hello-world/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/02-hello-world/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/02-hello-world/shed.toml b/examples/02-hello-world/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/02-hello-world/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/03-val/shed.json5 b/examples/03-val/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/03-val/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/03-val/shed.toml b/examples/03-val/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/03-val/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/04-val-as-namespace-statement/shed.json5 b/examples/04-val-as-namespace-statement/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/04-val-as-namespace-statement/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/04-val-as-namespace-statement/shed.toml b/examples/04-val-as-namespace-statement/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/04-val-as-namespace-statement/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/05-string-add/shed.json5 b/examples/05-string-add/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/05-string-add/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/05-string-add/shed.toml b/examples/05-string-add/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/05-string-add/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/06-if/shed.json5 b/examples/06-if/shed.json5
new file mode 100644
index 00000000..bf2e41bc
--- /dev/null
+++ b/examples/06-if/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "counting",
+ mainNamespace: "Counting",
+ },
+ ],
+ examples: [
+ {
+ bin: "counting",
+ expectedOutput: "one\ntwo\nmany",
+ },
+ ],
+}
diff --git a/examples/06-if/shed.toml b/examples/06-if/shed.toml
deleted file mode 100644
index 1f0949cd..00000000
--- a/examples/06-if/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "counting"
-main-namespace = "Counting"
-
-[[shed.examples]]
-bin = "counting"
-expected-output = "one\ntwo\nmany"
diff --git a/examples/07-mutual-recursion/shed.json5 b/examples/07-mutual-recursion/shed.json5
new file mode 100644
index 00000000..bc0776a5
--- /dev/null
+++ b/examples/07-mutual-recursion/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "mutual-recursion",
+ mainNamespace: "MutualRecursion",
+ },
+ ],
+ examples: [
+ {
+ bin: "mutual-recursion",
+ expectedOutput: "ababa",
+ },
+ ],
+}
diff --git a/examples/07-mutual-recursion/shed.toml b/examples/07-mutual-recursion/shed.toml
deleted file mode 100644
index e30e4462..00000000
--- a/examples/07-mutual-recursion/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "mutual-recursion"
-main-namespace = "MutualRecursion"
-
-[[shed.examples]]
-bin = "mutual-recursion"
-expected-output = "ababa"
diff --git a/examples/08-blocks/shed.json5 b/examples/08-blocks/shed.json5
new file mode 100644
index 00000000..7d7719ad
--- /dev/null
+++ b/examples/08-blocks/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "counting",
+ mainNamespace: "Counting",
+ },
+ ],
+ examples: [
+ {
+ bin: "counting",
+ expectedOutput: "count=one\ncount=two\ncount=many",
+ },
+ ],
+}
diff --git a/examples/08-blocks/shed.toml b/examples/08-blocks/shed.toml
deleted file mode 100644
index b7a54fd6..00000000
--- a/examples/08-blocks/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "counting"
-main-namespace = "Counting"
-
-[[shed.examples]]
-bin = "counting"
-expected-output = "count=one\ncount=two\ncount=many"
diff --git a/examples/09-var/shed.json5 b/examples/09-var/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/09-var/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/09-var/shed.toml b/examples/09-var/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/09-var/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/10-while/shed.json5 b/examples/10-while/shed.json5
new file mode 100644
index 00000000..bf2e41bc
--- /dev/null
+++ b/examples/10-while/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "counting",
+ mainNamespace: "Counting",
+ },
+ ],
+ examples: [
+ {
+ bin: "counting",
+ expectedOutput: "one\ntwo\nmany",
+ },
+ ],
+}
diff --git a/examples/10-while/shed.toml b/examples/10-while/shed.toml
deleted file mode 100644
index 1f0949cd..00000000
--- a/examples/10-while/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "counting"
-main-namespace = "Counting"
-
-[[shed.examples]]
-bin = "counting"
-expected-output = "one\ntwo\nmany"
diff --git a/examples/11-tuples/shed.json5 b/examples/11-tuples/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/11-tuples/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/11-tuples/shed.toml b/examples/11-tuples/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/11-tuples/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/12-named-args/shed.json5 b/examples/12-named-args/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/12-named-args/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/12-named-args/shed.toml b/examples/12-named-args/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/12-named-args/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/13-target-ignore/shed.json5 b/examples/13-target-ignore/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/13-target-ignore/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/13-target-ignore/shed.toml b/examples/13-target-ignore/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/13-target-ignore/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/14-structs/shed.json5 b/examples/14-structs/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/14-structs/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/14-structs/shed.toml b/examples/14-structs/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/14-structs/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/15-struct-hoisting/shed.json5 b/examples/15-struct-hoisting/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/15-struct-hoisting/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/15-struct-hoisting/shed.toml b/examples/15-struct-hoisting/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/15-struct-hoisting/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/16-struct-positional-fields/shed.json5 b/examples/16-struct-positional-fields/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/16-struct-positional-fields/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/16-struct-positional-fields/shed.toml b/examples/16-struct-positional-fields/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/16-struct-positional-fields/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/17-sums/shed.json5 b/examples/17-sums/shed.json5
new file mode 100644
index 00000000..ef44c0ca
--- /dev/null
+++ b/examples/17-sums/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "Some(hello, world!)\nNone",
+ },
+ ],
+}
diff --git a/examples/17-sums/shed.toml b/examples/17-sums/shed.toml
deleted file mode 100644
index 842e1e9c..00000000
--- a/examples/17-sums/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "Some(hello, world!)\nNone"
diff --git a/examples/18-import/shed.json5 b/examples/18-import/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/18-import/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/18-import/shed.toml b/examples/18-import/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/18-import/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/19-function-expression/shed.json5 b/examples/19-function-expression/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/19-function-expression/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/19-function-expression/shed.toml b/examples/19-function-expression/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/19-function-expression/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/20-function-expression-infer-return-type/shed.json5 b/examples/20-function-expression-infer-return-type/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/20-function-expression-infer-return-type/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/20-function-expression-infer-return-type/shed.toml b/examples/20-function-expression-infer-return-type/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/20-function-expression-infer-return-type/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/21-function-expression-infer-param-type/shed.json5 b/examples/21-function-expression-infer-param-type/shed.json5
new file mode 100644
index 00000000..589f5e5d
--- /dev/null
+++ b/examples/21-function-expression-infer-param-type/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world\nworld, hello",
+ },
+ ],
+}
diff --git a/examples/21-function-expression-infer-param-type/shed.toml b/examples/21-function-expression-infer-param-type/shed.toml
deleted file mode 100644
index 1503d826..00000000
--- a/examples/21-function-expression-infer-param-type/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world\nworld, hello"
diff --git a/examples/22-effect-resume/shed.json5 b/examples/22-effect-resume/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/22-effect-resume/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/22-effect-resume/shed.toml b/examples/22-effect-resume/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/22-effect-resume/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/23-effect-resume-with-value/shed.json5 b/examples/23-effect-resume-with-value/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/23-effect-resume-with-value/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/23-effect-resume-with-value/shed.toml b/examples/23-effect-resume-with-value/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/23-effect-resume-with-value/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/24-effect-with-state/shed.json5 b/examples/24-effect-with-state/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/24-effect-with-state/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/24-effect-with-state/shed.toml b/examples/24-effect-with-state/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/24-effect-with-state/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/25-effect-handler-pop/shed.json5 b/examples/25-effect-handler-pop/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/25-effect-handler-pop/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/25-effect-handler-pop/shed.toml b/examples/25-effect-handler-pop/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/25-effect-handler-pop/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/26-effect-handler-pop-on-return/shed.json5 b/examples/26-effect-handler-pop-on-return/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/26-effect-handler-pop-on-return/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/26-effect-handler-pop-on-return/shed.toml b/examples/26-effect-handler-pop-on-return/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/26-effect-handler-pop-on-return/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/27-effect-handler-nested/shed.json5 b/examples/27-effect-handler-nested/shed.json5
new file mode 100644
index 00000000..ca7c7829
--- /dev/null
+++ b/examples/27-effect-handler-nested/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "example",
+ mainNamespace: "Example",
+ },
+ ],
+ examples: [
+ {
+ bin: "example",
+ expectedOutput: "a outer\na inner\na inner\nb\na inner\na inner\na outer",
+ },
+ ],
+}
diff --git a/examples/27-effect-handler-nested/shed.toml b/examples/27-effect-handler-nested/shed.toml
deleted file mode 100644
index 291ca6db..00000000
--- a/examples/27-effect-handler-nested/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "example"
-main-namespace = "Example"
-
-[[shed.examples]]
-bin = "example"
-expected-output = "a outer\na inner\na inner\nb\na inner\na inner\na outer"
diff --git a/examples/28-effect-in-handler/shed.json5 b/examples/28-effect-in-handler/shed.json5
new file mode 100644
index 00000000..cb9b7f24
--- /dev/null
+++ b/examples/28-effect-in-handler/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "example",
+ mainNamespace: "Example",
+ },
+ ],
+ examples: [
+ {
+ bin: "example",
+ expectedOutput: "a outer\na inner start\na outer\na inner end\nb start\na inner start\na outer\na inner end\nb end\na inner start\na outer\na inner end\na outer",
+ },
+ ],
+}
diff --git a/examples/28-effect-in-handler/shed.toml b/examples/28-effect-in-handler/shed.toml
deleted file mode 100644
index fc01b961..00000000
--- a/examples/28-effect-in-handler/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "example"
-main-namespace = "Example"
-
-[[shed.examples]]
-bin = "example"
-expected-output = "a outer\na inner start\na outer\na inner end\nb start\na inner start\na outer\na inner end\nb end\na inner start\na outer\na inner end\na outer"
diff --git a/examples/29-effect-break/shed.json5 b/examples/29-effect-break/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/29-effect-break/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/29-effect-break/shed.toml b/examples/29-effect-break/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/29-effect-break/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/30-generic-structs/shed.json5 b/examples/30-generic-structs/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/30-generic-structs/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/30-generic-structs/shed.toml b/examples/30-generic-structs/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/30-generic-structs/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"
diff --git a/examples/31-generic-sums/shed.json5 b/examples/31-generic-sums/shed.json5
new file mode 100644
index 00000000..ef44c0ca
--- /dev/null
+++ b/examples/31-generic-sums/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "Some(hello, world!)\nNone",
+ },
+ ],
+}
diff --git a/examples/31-generic-sums/shed.toml b/examples/31-generic-sums/shed.toml
deleted file mode 100644
index 842e1e9c..00000000
--- a/examples/31-generic-sums/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "Some(hello, world!)\nNone"
diff --git a/examples/32-generic-structs-and-sums-inferred-type-args/shed.json5 b/examples/32-generic-structs-and-sums-inferred-type-args/shed.json5
new file mode 100644
index 00000000..ef44c0ca
--- /dev/null
+++ b/examples/32-generic-structs-and-sums-inferred-type-args/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "Some(hello, world!)\nNone",
+ },
+ ],
+}
diff --git a/examples/32-generic-structs-and-sums-inferred-type-args/shed.toml b/examples/32-generic-structs-and-sums-inferred-type-args/shed.toml
deleted file mode 100644
index 842e1e9c..00000000
--- a/examples/32-generic-structs-and-sums-inferred-type-args/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "Some(hello, world!)\nNone"
diff --git a/examples/33-generic-functions/shed.json5 b/examples/33-generic-functions/shed.json5
new file mode 100644
index 00000000..9e86b280
--- /dev/null
+++ b/examples/33-generic-functions/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world!",
+ },
+ ],
+}
diff --git a/examples/33-generic-functions/shed.toml b/examples/33-generic-functions/shed.toml
deleted file mode 100644
index 9c1a6d01..00000000
--- a/examples/33-generic-functions/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world!"
diff --git a/examples/34-generic-effects/shed.json5 b/examples/34-generic-effects/shed.json5
new file mode 100644
index 00000000..b1c76b7a
--- /dev/null
+++ b/examples/34-generic-effects/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello\nhello",
+ },
+ ],
+}
diff --git a/examples/34-generic-effects/shed.toml b/examples/34-generic-effects/shed.toml
deleted file mode 100644
index 04d4475a..00000000
--- a/examples/34-generic-effects/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello\nhello"
diff --git a/examples/35-struct-methods/shed.json5 b/examples/35-struct-methods/shed.json5
new file mode 100644
index 00000000..8953bef1
--- /dev/null
+++ b/examples/35-struct-methods/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "one\ntwo\nmany",
+ },
+ ],
+}
diff --git a/examples/35-struct-methods/shed.toml b/examples/35-struct-methods/shed.toml
deleted file mode 100644
index 0564616e..00000000
--- a/examples/35-struct-methods/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "one\ntwo\nmany"
diff --git a/examples/36-struct-method-references/shed.json5 b/examples/36-struct-method-references/shed.json5
new file mode 100644
index 00000000..748b84b8
--- /dev/null
+++ b/examples/36-struct-method-references/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "one apple\ntwo bananas\nmany coconuts!",
+ },
+ ],
+}
diff --git a/examples/36-struct-method-references/shed.toml b/examples/36-struct-method-references/shed.toml
deleted file mode 100644
index d66739b4..00000000
--- a/examples/36-struct-method-references/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "one apple\ntwo bananas\nmany coconuts!"
diff --git a/examples/37-generic-struct-methods/shed.json5 b/examples/37-generic-struct-methods/shed.json5
new file mode 100644
index 00000000..e08441e6
--- /dev/null
+++ b/examples/37-generic-struct-methods/shed.json5
@@ -0,0 +1,14 @@
+{
+ bins: [
+ {
+ name: "hello-world",
+ mainNamespace: "HelloWorld",
+ },
+ ],
+ examples: [
+ {
+ bin: "hello-world",
+ expectedOutput: "hello, world",
+ },
+ ],
+}
diff --git a/examples/37-generic-struct-methods/shed.toml b/examples/37-generic-struct-methods/shed.toml
deleted file mode 100644
index bf5c13c4..00000000
--- a/examples/37-generic-struct-methods/shed.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-[[shed.bins]]
-name = "hello-world"
-main-namespace = "HelloWorld"
-
-[[shed.examples]]
-bin = "hello-world"
-expected-output = "hello, world"