From febad8968c1942cf4f56c8d6292c1ac34fd48dc9 Mon Sep 17 00:00:00 2001
From: MystPi <86574651+MystPi@users.noreply.github.com>
Date: Sat, 27 Apr 2024 09:38:13 -0400
Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A7=20Project=20structure=20idea?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 examples/blah/build/Blah.mjs          |  0
 examples/blah/build/Spark/IO.mjs      |  0
 examples/blah/build/spark.prelude.mjs |  0
 examples/blah/spark.toml              |  1 +
 examples/blah/src/Blah.spark          |  6 ++++++
 src/templates/Spark/IO.spark          | 13 +++++++++++++
 6 files changed, 20 insertions(+)
 create mode 100644 examples/blah/build/Blah.mjs
 create mode 100644 examples/blah/build/Spark/IO.mjs
 create mode 100644 examples/blah/build/spark.prelude.mjs
 create mode 100644 examples/blah/spark.toml
 create mode 100644 examples/blah/src/Blah.spark
 create mode 100644 src/templates/Spark/IO.spark

diff --git a/examples/blah/build/Blah.mjs b/examples/blah/build/Blah.mjs
new file mode 100644
index 0000000..e69de29
diff --git a/examples/blah/build/Spark/IO.mjs b/examples/blah/build/Spark/IO.mjs
new file mode 100644
index 0000000..e69de29
diff --git a/examples/blah/build/spark.prelude.mjs b/examples/blah/build/spark.prelude.mjs
new file mode 100644
index 0000000..e69de29
diff --git a/examples/blah/spark.toml b/examples/blah/spark.toml
new file mode 100644
index 0000000..a809a8e
--- /dev/null
+++ b/examples/blah/spark.toml
@@ -0,0 +1 @@
+name = "Blah"
\ No newline at end of file
diff --git a/examples/blah/src/Blah.spark b/examples/blah/src/Blah.spark
new file mode 100644
index 0000000..75ad651
--- /dev/null
+++ b/examples/blah/src/Blah.spark
@@ -0,0 +1,6 @@
+import Spark/IO
+
+def pub main =
+  \_ <- IO.println("Hello, world!") |> IO.then
+  \_ <- IO.println("This is the Blah module") |> IO.then
+  IO.println("Bye!")
\ No newline at end of file
diff --git a/src/templates/Spark/IO.spark b/src/templates/Spark/IO.spark
new file mode 100644
index 0000000..726ccbb
--- /dev/null
+++ b/src/templates/Spark/IO.spark
@@ -0,0 +1,13 @@
+def pub println\text =
+  \ <- action
+  external "
+    console.log(text);
+    return $.nil;
+  "
+
+def pub then\@IO { perform }, f =
+  \ <- action
+  f(perform()).perform()
+
+def action\perform =
+  @IO { perform }
\ No newline at end of file