From 0f76c3aa72b08a2ca49c3193f9f2536b74c72bfa Mon Sep 17 00:00:00 2001
From: Huw Walters <huw.walters@gmail.com>
Date: Mon, 21 Oct 2024 19:51:03 +0100
Subject: [PATCH 1/6] Add whitespace to Bash commands.

---
 build.ab                                      |  8 +--
 setup/install.ab                              | 30 +++++------
 setup/shared.ab                               | 10 ++--
 setup/uninstall.ab                            |  6 +--
 src/std/date.ab                               | 10 ++--
 src/std/env.ab                                | 46 ++++++++--------
 src/std/fs.ab                                 | 18 +++----
 src/std/http.ab                               |  6 +--
 src/std/math.ab                               |  8 +--
 src/std/text.ab                               | 52 +++++++++----------
 src/tests/stdlib/change_owner.ab              |  8 +--
 src/tests/stdlib/confirm.ab                   | 10 ++--
 src/tests/stdlib/create_dir.ab                |  2 +-
 src/tests/stdlib/create_symbolic_link.ab      |  6 +--
 src/tests/stdlib/dir_exist.ab                 |  4 +-
 src/tests/stdlib/file_append.ab               |  8 +--
 src/tests/stdlib/file_exist.ab                |  6 +--
 src/tests/stdlib/file_read.ab                 |  6 +--
 src/tests/stdlib/file_write.ab                |  6 +--
 src/tests/stdlib/get_env_var.ab               |  6 +--
 src/tests/stdlib/input.ab                     |  6 +--
 src/tests/stdlib/input_hidden.ab              |  6 +--
 src/tests/stdlib/load_env_file.ab             |  6 +--
 src/tests/stdlib/make_executable.ab           |  6 +--
 src/tests/stdlib/no_output/download.ab        |  6 +--
 src/tests/stdlib/now.ab                       |  4 +-
 src/tests/stdlib/shell_constant_get.ab        |  2 +-
 src/tests/stdlib/shell_constant_set.ab        |  2 +-
 src/tests/stdlib/shell_isset.ab               |  2 +-
 src/tests/stdlib/shell_unset.ab               |  4 +-
 src/tests/stdlib/shell_var_get.ab             |  2 +-
 src/tests/stdlib/shell_var_set.ab             |  2 +-
 src/tests/validity/cd.ab                      |  2 +-
 src/tests/validity/chained_modifiers.ab       |  6 +--
 .../validity/chained_modifiers_commands.ab    |  6 +--
 src/tests/validity/command_inception.ab       |  2 +-
 src/tests/validity/command_interpolation.ab   |  2 +-
 src/tests/validity/failed.ab                  |  6 +--
 src/tests/validity/infinite_loop.ab           |  2 +-
 src/tests/validity/mv.ab                      |  6 +--
 src/tests/validity/silent.ab                  |  2 +-
 src/tests/validity/status.ab                  |  2 +-
 src/tests/validity/variable_ref_command.ab    |  2 +-
 .../variable_ref_function_invocation.ab       |  2 +-
 test_files/str/trim.ab                        |  2 +-
 45 files changed, 173 insertions(+), 173 deletions(-)

diff --git a/build.ab b/build.ab
index 0430acb0..b0a1889d 100644
--- a/build.ab
+++ b/build.ab
@@ -1,14 +1,14 @@
 // Check if such directory exists
-$test -f "Cargo.toml" > /dev/null$ failed {
+$test -f "Cargo.toml" > /dev/null $ failed {
     echo "Please run this command in the project root directory"
-    trust $exit 1$
+    trust $ exit 1 $
 }
 
 trust {
     if status == 0 {
         // Recompile installer scripts
-        $cargo run -- setup/install.ab setup/install.sh$
-        $cargo run -- setup/uninstall.ab setup/uninstall.sh$
+        $ cargo run -- setup/install.ab setup/install.sh $
+        $ cargo run -- setup/uninstall.ab setup/uninstall.sh $
     } else {
         echo "Please run this command in the project root directory"
     }
diff --git a/setup/install.ab b/setup/install.ab
index fd1575f7..00125bd9 100644
--- a/setup/install.ab
+++ b/setup/install.ab
@@ -9,18 +9,18 @@ let target = "amber"
 let archive = "amber.tar.xz"
 let agent = has_failed("uname -a")
     then "unknown"
-    else trust $uname -a$
+    else trust $ uname -a $
 
 echo ""
 
 fun get_latest_release_tag() {
     let tag_url = "https://api.github.com/repos/Ph0enixKM/{name}/releases/latest"
-    let tag_json = $curl -sL "{tag_url}"$?
+    let tag_json = $ curl -sL "{tag_url}" $?
     // Get the tag name from the JSON
-    let tag = $echo "\${nameof tag_json}" \
+    let tag = $ echo "\${nameof tag_json}" \
         | grep -Eo "tag_name\\"[^\\"]*\\"([^\\"]+)\\"" \
         | grep -Eo "\\"[^\\"]+\\"\$" \
-        | grep -Eo "[^\\"\\s]+"$?
+        | grep -Eo "[^\\"\\s]+" $?
     return tag
 }
 
@@ -33,7 +33,7 @@ main(args) {
     let bins_folder = get_bins_folder(user_only_install)
 
     // Check if such directory exists
-    trust $test -d "{place}"$
+    trust $ test -d "{place}" $
 
     if status == 0 {
         echo "Amber already installed"
@@ -56,7 +56,7 @@ main(args) {
     // this decreases the chance that our script results in partial installation leaving assets behind
     let sudo = user_only_install then "" else "sudo"
     // Create directory for amber
-    silent ${sudo} mkdir -p "{place}"$ failed {
+    silent $ {sudo} mkdir -p "{place}" $ failed {
         echo "Failed to create directory for amber."
         if user_only_install {
             echo "Please make sure that root user can access {place} directory."
@@ -66,7 +66,7 @@ main(args) {
         exit 1
     }
     if user_only_install {
-        silent $mkdir -p "{bins_folder}"$ failed {
+        silent $ mkdir -p "{bins_folder}" $ failed {
             echo "Failed to create directory for amber bin at {bins_folder}."
             exit 1
         }
@@ -82,34 +82,34 @@ main(args) {
     let url = "https://github.com/Ph0enixKM/{name}/releases/download/{tag}/amber-{arch}-{os}.tar.xz"
 
     // Download amber
-    silent $curl -L -o "{archive}" "{url}"$ failed {
+    silent $ curl -L -o "{archive}" "{url}" $ failed {
         echo "Curl failed to download amber."
         echo "Something went wrong. Please try again later."
         exit 1
     }
 
     // Move archived version of amber
-    ${sudo} mv "{archive}" "{place}/{archive}"$ failed {
+    $ {sudo} mv "{archive}" "{place}/{archive}" $ failed {
         echo "Failed to move amber to the installation directory."
         echo "Please make sure that root user can access {place} directory."
         exit 1
     }
 
     // Unarchive amber
-    silent ${sudo} tar --strip-components=1 -xvf {place}/{archive} -C {place}$ failed {
+    silent $ {sudo} tar --strip-components=1 -xvf {place}/{archive} -C {place} $ failed {
         echo "Failed to unarchive amber at {place}/{archive}"
         echo "Please make sure that you have `tar` command installed."
         exit 1
     }
 
     // Delete the archive
-    ${sudo} rm {place}/{archive}$ failed {
+    $ {sudo} rm {place}/{archive} $ failed {
         echo "Failed to remove downloaded archive at {place}/{archive}"
         exit 1
     }
 
     // Give permissions to execute amber
-    ${sudo} chmod +x "{place}/{target}"$ failed {
+    $ {sudo} chmod +x "{place}/{target}" $ failed {
         echo "Failed to give permissions to execute amber."
         echo "Please make sure that root user can access {place} directory."
         exit 1
@@ -117,7 +117,7 @@ main(args) {
 
     // Delete the previous symbolic link
     if file_exist("{bins_folder}/{target}") {
-        ${sudo} rm "{bins_folder}/{target}"$ failed {
+        $ {sudo} rm "{bins_folder}/{target}" $ failed {
             echo "Failed to remove the previous amber symbol link."
             echo "Please make sure that root user can access {bins_folder} directory."
             exit 1
@@ -125,7 +125,7 @@ main(args) {
     }
 
     // Create amber symbol link
-    ${sudo} ln -s "{place}/{target}" "{bins_folder}/{target}"$ failed {
+    $ {sudo} ln -s "{place}/{target}" "{bins_folder}/{target}" $ failed {
         echo "Failed to create amber symbol link."
         echo "Please make sure that root user can access {bins_folder} directory."
         exit 1
@@ -134,7 +134,7 @@ main(args) {
     let nickname = input("Would you like to help improve Amber by sharing your OS info with our developer database? Enter your GitHub nickname (or any nickname) or type `no`:")
     if (nickname != "no") {
         // Send feedback to the server
-        trust silent $curl -G --data-urlencode "agent={agent}" --data-urlencode "nickname={nickname}" --data-urlencode "name=download" "https://amber-lang.com/api/visit"$
+        trust silent $ curl -G --data-urlencode "agent={agent}" --data-urlencode "nickname={nickname}" --data-urlencode "name=download" "https://amber-lang.com/api/visit" $
     }
 
     // Send success message
diff --git a/setup/shared.ab b/setup/shared.ab
index c8835eea..6765db44 100644
--- a/setup/shared.ab
+++ b/setup/shared.ab
@@ -3,7 +3,7 @@ import { includes } from "std/array"
 
 pub fun get_os(): Text {
     // Determine OS type
-    let os_type = $uname -s$ failed {
+    let os_type = $ uname -s $ failed {
         echo "Failed to determine OS type (using `uname` command)."
         echo "Please try again or make sure you have it installed."
         exit 1
@@ -25,7 +25,7 @@ pub fun get_os(): Text {
 
 pub fun get_arch(): Text {
     // Determine architecture
-    let arch_type = $uname -m$ failed {
+    let arch_type = $ uname -m $ failed {
         echo "Failed to determine architecture."
         echo "Please try again or use another download method."
         exit 1
@@ -39,7 +39,7 @@ pub fun get_arch(): Text {
 }
 
 fun get_home(): Text {
-    let home = $echo \$HOME$ failed {
+    let home = $ echo \$HOME $ failed {
         echo "User installation requested, but unable to retrieve home directory from $HOME environment."
         exit 1
     }
@@ -56,8 +56,8 @@ pub fun get_bins_folder(user_only: Bool): Text {
     } else {
         // Ensure /usr/local/bin exists for non-user installations
         let bins_folder = "/usr/local/bin"
-        silent $test -d "{bins_folder}"$ failed {
-            silent $sudo mkdir -p "{bins_folder}"$ failed {
+        silent $ test -d "{bins_folder}" $ failed {
+            silent $ sudo mkdir -p "{bins_folder}" $ failed {
                 echo "Failed to create {bins_folder} directory."
                 exit 1
             }
diff --git a/setup/uninstall.ab b/setup/uninstall.ab
index 07aa90ac..a7b6edf8 100644
--- a/setup/uninstall.ab
+++ b/setup/uninstall.ab
@@ -10,16 +10,16 @@ main(args) {
     let place = get_place(user_only_install)
     let bins_folder = get_bins_folder(user_only_install)
 
-    trust $test -d "{place}" > /dev/null$
+    trust $ test -d "{place}" > /dev/null $
 
     if status == 0 {
         let sudo = user_only_install then "" else "sudo"
-        ${sudo} rm -rf "{place}"$ failed {
+        $ {sudo} rm -rf "{place}" $ failed {
             echo "Failed to remove Amber from {place}"
             echo "Make sure root has the correct permissions to access this directory"
             exit 1
         }
-        ${sudo} rm "{bins_folder}/amber"$ failed {
+        $ {sudo} rm "{bins_folder}/amber" $ failed {
             echo "Failed to remove Amber symlink from {bins_folder}"
             echo "Make sure root has the correct permissions to access this directory"
             exit 1
diff --git a/src/std/date.ab b/src/std/date.ab
index 0eeb59ae..4cec1258 100644
--- a/src/std/date.ab
+++ b/src/std/date.ab
@@ -70,18 +70,18 @@
 /// ```
 pub fun date_posix(format: Text = "", date: Text = "", utc: Bool = false): Text? {
     if format == "": format = "%FT%T%Z"
-    if date == "": date = trust $date +"%FT%T%Z"$
+    if date == "": date = trust $ date +"%FT%T%Z" $
     if (utc) {
-        return $date --utc -d "{date}" +"{format}"$?
+        return $ date --utc -d "{date}" +"{format}" $?
     } else {
-        return $date -d "{date}" +"{format}"$?
+        return $ date -d "{date}" +"{format}" $?
     }    
 }
 
 /// Returns the current timestamp (seconds since the Epoch (1970-01-01 00:00 UTC)).
 #[allow_absurd_cast]
 pub fun now(): Num {
-    return trust $date +%s$ as Num
+    return trust $ date +%s $ as Num
 }
 
 /// ### EXPERIMENTAL
@@ -101,7 +101,7 @@ pub fun now(): Num {
 /// - minutes
 /// - seconds
 pub fun date_add(add:Text, date:Text = "", utc: Bool = false): Text? {
-    if date == "": date = trust $date +"%FT%T%Z"$
+    if date == "": date = trust $ date +"%FT%T%Z" $
     return date_posix("", "{date_posix("%F", date, utc)?} {add} {date_posix("%T", date, utc)?}", utc)?
 }
 
diff --git a/src/std/env.ab b/src/std/env.ab
index 9b188559..55db8250 100644
--- a/src/std/env.ab
+++ b/src/std/env.ab
@@ -3,14 +3,14 @@ import * from "std/text"
 
 /// Retrieves the value of an environment variable, optionally sourcing it from a file if not already set.
 pub fun get_env_var(var: Text, file: Text = ".env"): Text {
-    let _var = trust $echo "\$\{!var}"$
+    let _var = trust $ echo "\$\{!var}" $
     if _var != "" {
         return _var
     }
 
     if file_exist(file) {
-        trust $source "{file}"$
-        return trust $echo "\$\{!var}"$
+        trust $ source "{file}" $
+        return trust $ echo "\$\{!var}" $
     }
 
     return ""
@@ -18,12 +18,12 @@ pub fun get_env_var(var: Text, file: Text = ".env"): Text {
 
 /// Loads the env file in the environment, using `xargs`.
 pub fun load_env_file(file: Text = ".env"): Null {
-    trust $export "\$(xargs < {file})" > /dev/null$
+    trust $ export "\$(xargs < {file})" > /dev/null $
 }
 
 /// Checks if a variable inside the shell session exists.
 pub fun shell_isset(name: Text): Bool {
-    $[[ ! -z \$\{!{nameof name}+z} ]]$ failed {
+    $ [[ ! -z \$\{!{nameof name}+z} ]] $ failed {
         return false
     }
     return true
@@ -31,32 +31,32 @@ pub fun shell_isset(name: Text): Bool {
 
 /// Sets a constant inside the shell session.
 pub fun shell_constant_set(name: Text, val: Text): Null? {
-    $readonly \${nameof name}="\${nameof val}" 2> /dev/null$?
+    $ readonly \${nameof name}="\${nameof val}" 2> /dev/null $?
 }
 
 /// Gets a constant inside the shell session.
 pub fun shell_constant_get(name: Text): Text? {
-    return $echo \$\{!{nameof name}}$?
+    return $ echo \$\{!{nameof name}} $?
 }
 
 /// Sets a constant inside the shell session.
 pub fun shell_var_set(name: Text, val: Text): Null? {
-    $export \${nameof name}="\${nameof val}" 2> /dev/null$?
+    $ export \${nameof name}="\${nameof val}" 2> /dev/null $?
 }
 
 /// Gets a constant inside the shell session.
 pub fun shell_var_get(name: Text): Text? {
-    return $echo \$\{!{nameof name}}$?
+    return $ echo \$\{!{nameof name}} $?
 }
 
 /// Removes a variable inside the shell session.
 pub fun shell_unset(name: Text): Null? {
-    $unset {name}$?
+    $ unset {name} $?
 }
 
 /// Checks if a command exists.
 pub fun is_command(command: Text): Bool {
-    $[ -x "\$(command -v {command})" ]$ failed {
+    $ [ -x "\$(command -v {command})" ] $ failed {
         return false
     }
     return true
@@ -64,15 +64,15 @@ pub fun is_command(command: Text): Bool {
 
 /// Creates a prompt and returns the value.
 pub fun input(prompt: Text): Text {
-    trust $read -p "\${nameof prompt}"$
+    trust $ read -p "\${nameof prompt}" $
     return "\$REPLY"
 }
 
 /// Creates a prompt, hides any user input and returns the value.
 pub fun input_hidden(prompt: Text): Text {
     trust {
-        $read -s -p "\${nameof prompt}"$
-        $echo "" >&2$
+        $ read -s -p "\${nameof prompt}" $
+        $ echo "" >&2 $
     }
     return "\$REPLY"
 }
@@ -83,23 +83,23 @@ pub fun input_hidden(prompt: Text): Text {
 pub fun confirm(prompt: Text, default_yes: Bool = false): Bool {
     let choice_default = default_yes then " [\x1b[1mY/\x1b[0mn]" else " [y/\x1b[1mN\x1b[0m]"
     trust {
-        $printf "\x1b[1m{prompt}\x1b[0m{choice_default}"$
-        $read -s -n 1$
-        $printf "\n"$
+        $ printf "\x1b[1m{prompt}\x1b[0m{choice_default}" $
+        $ read -s -n 1 $
+        $ printf "\n" $
     }
-    let result = lower(trust $echo \$REPLY$)
+    let result = lower(trust $ echo \$REPLY $)
     return result == "y" or (result == "" and default_yes)
 }
 
 /// Checks if the command has failed.
 pub fun has_failed(command: Text): Bool {
-    trust silent $eval {command}$
+    trust silent $ eval {command} $
     return status != 0
 }
 
 /// Checks if the script is running with a user with root permission.
 pub fun is_root(): Bool {
-    if trust $id -u$ == "0" {
+    if trust $ id -u $ == "0" {
         return true
     }
 
@@ -108,13 +108,13 @@ pub fun is_root(): Bool {
 
 /// `printf` the text following the arguments.
 pub fun printf(format: Text, args: [Text] = [""]): Null {
-    trust ${nameof args}=("{format}" "\$\{{nameof args}[@]}")$
-    trust $printf "\$\{{nameof args}[@]}"$
+    trust $ {nameof args}=("{format}" "\$\{{nameof args}[@]}") $
+    trust $ printf "\$\{{nameof args}[@]}" $
 }
 
 /// Escapes the text to be used with `printf`.
 pub fun printf_escape(text: Text): Text {
-    return trust $echo \${nameof text} | sed -e 's/\\\\/\\\\\\\\/g' -e "s/%/%%/g"$
+    return trust $ echo \${nameof text} | sed -e 's/\\\\/\\\\\\\\/g' -e "s/%/%%/g" $
 }
 
 /// Prepares a text with formatting options for `printf`.
diff --git a/src/std/fs.ab b/src/std/fs.ab
index daeadace..162c6daa 100644
--- a/src/std/fs.ab
+++ b/src/std/fs.ab
@@ -2,7 +2,7 @@ import { join, len, replace_regex, split } from "std/text"
 
 /// Checks if a directory exists.
 pub fun dir_exist(path) {
-    $[ -d "{path}" ]$ failed {
+    $ [ -d "{path}" ] $ failed {
         return false
     }
     return true
@@ -10,7 +10,7 @@ pub fun dir_exist(path) {
 
 /// Checks if a file exists.
 pub fun file_exist(path) {
-    $[ -f "{path}" ]$ failed {
+    $ [ -f "{path}" ] $ failed {
         return false
     }
     return true
@@ -18,20 +18,20 @@ pub fun file_exist(path) {
 
 /// Gets file contents from a path.
 pub fun file_read(path) {
-    return $< "{path}"$?
+    return $ < "{path}" $?
 }
 
 /// Writes content to a file.
 /// Doesn't check if the file exist
 pub fun file_write(path, content) {
-    return $echo "{content}" > "{path}"$?
+    return $ echo "{content}" > "{path}" $?
 }
 
 /// Appends content to a file.
 ///
 /// Doesn't check if the file exists.
 pub fun file_append(path, content) {
-    return $echo "{content}" >> "{path}"$?
+    return $ echo "{content}" >> "{path}" $?
 }
 
 /// Creates a symbolic link.
@@ -39,7 +39,7 @@ pub fun file_append(path, content) {
 /// If the file doesn't exist, it returns a boolean and prints a message.
 pub fun create_symbolic_link(origin: Text, destination: Text): Bool {
     if file_exist(origin) {
-        trust $ln -s "{origin}" "{destination}"$
+        trust $ ln -s "{origin}" "{destination}" $
         return true
     }
 
@@ -50,7 +50,7 @@ pub fun create_symbolic_link(origin: Text, destination: Text): Bool {
 /// Creates a directory with all parent directories as required.
 pub fun create_dir(path: Text): Null {
     if not dir_exist(path) {
-        trust $mkdir -p "{path}"$
+        trust $ mkdir -p "{path}" $
     }
 }
 
@@ -59,7 +59,7 @@ pub fun create_dir(path: Text): Null {
 /// If the file doesn't exist, it returns a boolean and prints a message.
 pub fun make_executable(path: Text): Bool {
     if file_exist(path) {
-        trust $chmod +x "{path}"$
+        trust $ chmod +x "{path}" $
         return true
     }
 
@@ -72,7 +72,7 @@ pub fun make_executable(path: Text): Bool {
 /// If the file doesn't exist, it returns `false`
 pub fun change_owner(user: Text, path: Text): Bool {
     if file_exist(path) or dir_exist(path) {
-        trust $chown -R "{user}" "{path}"$
+        trust $ chown -R "{user}" "{path}" $
         return true
     }
 
diff --git a/src/std/http.ab b/src/std/http.ab
index f2978b42..6b0094cd 100644
--- a/src/std/http.ab
+++ b/src/std/http.ab
@@ -7,13 +7,13 @@ import * from "std/env"
 pub fun download(url: Text, path: Text): Bool {
     if {
         is_command("curl") {
-            trust $curl -L -o "{path}" "{url}"$
+            trust $ curl -L -o "{path}" "{url}" $
         }
         is_command("wget") {
-            trust $wget "{url}" -P "{path}"$
+            trust $ wget "{url}" -P "{path}" $
         }
         is_command("aria2c") {
-            trust $aria2c "{url}" -d "{path}"$
+            trust $ aria2c "{url}" -d "{path}" $
         }
         else {
             return false
diff --git a/src/std/math.ab b/src/std/math.ab
index e08b8e3c..d43c8818 100644
--- a/src/std/math.ab
+++ b/src/std/math.ab
@@ -1,23 +1,23 @@
 /// Sums an array's contents
 #[allow_absurd_cast]
 pub fun sum(list: [Num]): Num {
-    return trust $echo "{list}" | awk '\{s=0; for (i=1; i<=NF; i++) s+=\$i; print s}'$ as Num
+    return trust $ echo "{list}" | awk '\{s=0; for (i=1; i<=NF; i++) s+=\$i; print s}' $ as Num
 }
 
 /// Returns a number, rounded to the nearest integer
 #[allow_absurd_cast]
 pub fun round(number: Num): Num {
     if number > 0 {
-        return trust $echo "({number}+0.5)/1" | bc$ as Num
+        return trust $ echo "({number}+0.5)/1" | bc $ as Num
     }
 
-    return trust $echo "({number}-0.5)/1" | bc$ as Num
+    return trust $ echo "({number}-0.5)/1" | bc $ as Num
 }
 
 /// Returns the largest integer less than or equal to a number
 #[allow_absurd_cast]
 pub fun floor(number: Num): Num {
-    return trust $echo "{number}" | awk '\{printf "%d", (\$1 < 0 ? int(\$1) - 1 : int(\$1))}'$ as Num
+    return trust $ echo "{number}" | awk '\{printf "%d", (\$1 < 0 ? int(\$1) - 1 : int(\$1))}' $ as Num
 }
 
 /// Returns the smallest integer greater than or equal to a number
diff --git a/src/std/text.ab b/src/std/text.ab
index fd4d25e8..b65c16c4 100644
--- a/src/std/text.ab
+++ b/src/std/text.ab
@@ -19,11 +19,11 @@ pub fun replace_regex(source: Text, search: Text, replace: Text, extended: Bool
             // GNU sed versions 4.0 through 4.2 support extended regex syntax,
             // but only via the "-r" option; use that if the version information
             // contains "GNU sed".
-            $re='\bCopyright\b.+\bFree Software Foundation\b'; [[ \$(sed --version 2>/dev/null) =~ \$re ]]$
+            $ re='\bCopyright\b.+\bFree Software Foundation\b'; [[ \$(sed --version 2>/dev/null) =~ \$re ]] $
             let flag = status == 0 then "-r" else "-E"
-            return $echo "{source}" | sed {flag} -e "s/{search}/{replace}/g"$
+            return $ echo "{source}" | sed {flag} -e "s/{search}/{replace}/g" $
         } else {
-            return $echo "{source}" | sed -e "s/{search}/{replace}/g"$
+            return $ echo "{source}" | sed -e "s/{search}/{replace}/g" $
         }
     }
 }
@@ -31,7 +31,7 @@ pub fun replace_regex(source: Text, search: Text, replace: Text, extended: Bool
 /// Splits the input `text` into an array of substrings using the specified `delimiter`.
 pub fun split(text: Text, delimiter: Text): [Text] {
     let result = [Text]
-    trust $IFS="{delimiter}" read -rd '' -a {nameof result} < <(printf %s "\${nameof text}")$
+    trust $ IFS="{delimiter}" read -rd '' -a {nameof result} < <(printf %s "\${nameof text}") $
     return result
 }
 
@@ -47,17 +47,17 @@ pub fun words(text: Text): [Text] {
 
 /// Merges text using the delimeter specified.
 pub fun join(list: [Text], delimiter: Text): Text {
-    return trust $IFS="{delimiter}" ; echo "\$\{{nameof list}[*]}"$
+    return trust $ IFS="{delimiter}" ; echo "\$\{{nameof list}[*]}" $
 }
 
 /// Trims the spaces at top of the text using `sed`.
 pub fun trim_left(text: Text): Text {
-    return trust $echo "{text}" | sed -e 's/^[[:space:]]*//'$
+    return trust $ echo "{text}" | sed -e 's/^[[:space:]]*//' $
 }
 
 /// Trims the spaces at end of the text using `sed`.
 pub fun trim_right(text: Text): Text {
-    return trust $echo "{text}" | sed -e 's/[[:space:]]*\$//'$
+    return trust $ echo "{text}" | sed -e 's/[[:space:]]*\$//' $
 }
 
 /// Trims the spaces from the text input.
@@ -67,27 +67,27 @@ pub fun trim(text: Text): Text {
 
 /// Makes the text input lowercase using `tr`.
 pub fun lower(text: Text): Text {
-    return trust $echo "{text}" | tr '[:upper:]' '[:lower:]'$
+    return trust $ echo "{text}" | tr '[:upper:]' '[:lower:]' $
 }
 
 /// Makes the text input uppercase using `tr`.
 pub fun upper(text: Text): Text {
-    return trust $echo "{text}" | tr '[:lower:]' '[:upper:]'$
+    return trust $ echo "{text}" | tr '[:lower:]' '[:upper:]' $
 }
 
 /// Attempts to parse a given text into a number, returning the parsed number or zero if parsing fails.
 #[allow_absurd_cast]
 pub fun parse(text: Text): Num? {
-    $[ -n "{text}" ] && [ "{text}" -eq "{text}" ] 2>/dev/null$?
+    $ [ -n "{text}" ] && [ "{text}" -eq "{text}" ] 2>/dev/null $?
     return text as Num
 }
 
 /// Splits a text into an array of individual characters.
 pub fun chars(text: Text): [Text] {
     let chars = [Text]
-    trust $for ((i=0; i<\$\{#{nameof text}}; i++)); do
+    trust $ for ((i=0; i<\$\{#{nameof text}}; i++)); do
         {nameof chars}+=( "\$\{{nameof text}:\$i:1}" );
-    done;$
+    done $
     return chars
 }
 
@@ -96,40 +96,40 @@ pub fun chars(text: Text): [Text] {
 pub fun len(value): Num {
     trust {
         if value is Text:
-            return $echo "\$\{#{nameof value}}"$ as Num
+            return $ echo "\$\{#{nameof value}}" $ as Num
         else:
-            return $echo "\$\{#{nameof value}[@]}"$ as Num
+            return $ echo "\$\{#{nameof value}[@]}" $ as Num
     }
 }
 
 /// Checks if some text contains a value/
 pub fun contains(text: Text, phrase: Text): Bool {
-  let result = trust $if [[ "{text}" == *"{phrase}"* ]]; then
+  let result = trust $ if [[ "{text}" == *"{phrase}"* ]]; then
     echo 1
-  fi$
+  fi $
 
   return result == "1"
 }
 
 /// Reverses text using `rev`.
 pub fun reverse(text: Text): Text {
-    return trust $echo "{text}" | rev$
+    return trust $ echo "{text}" | rev $
 }
 
 /// Checks if text starts with a value.
 pub fun starts_with(text: Text, prefix: Text): Bool {
-  let result = trust $if [[ "{text}" == "{prefix}"* ]]; then
+  let result = trust $ if [[ "{text}" == "{prefix}"* ]]; then
     echo 1
-  fi$
+  fi $
 
   return result == "1"
 }
 
 /// Checks if text ends with a value.
 pub fun ends_with(text: Text, suffix: Text): Bool {
-  let result = trust $if [[ "{text}" == *"{suffix}" ]]; then
+  let result = trust $ if [[ "{text}" == *"{suffix}" ]]; then
     echo 1
-  fi$
+  fi $
 
   return result == "1"
 }
@@ -142,26 +142,26 @@ pub fun ends_with(text: Text, suffix: Text): Bool {
 pub fun slice(text: Text, index: Num, length: Num = 0): Text {
     if length == 0: length = len(text) - index
     if length <= 0: return ""
-    return trust $printf "%.{length}s" "\$\{text:{index}}"$
+    return trust $ printf "%.{length}s" "\$\{text:{index}}" $
 }
 
 /// Returns the character from `text` at the specified `index` (0-based).
 ///
 /// If `index` is negative, the substring starts from the end of `text` based on the absolute value of `index`.
 pub fun char_at(text: Text, index: Num): Text {
-    return trust $printf "%.1s" "\$\{text:{index}}"$
+    return trust $ printf "%.1s" "\$\{text:{index}}" $
 }
 
 /// Capitalize the first letter of the given `text`.
 pub fun capitalize(text: Text): Text {
-    return trust $echo "{text}" | sed "s/^\(.\)/\U\1/"$
+    return trust $ echo "{text}" | sed "s/^\(.\)/\U\1/" $
 }
 
 /// Pads `text` with the specified `pad` character on left until it reaches the desired `length`.
 pub fun lpad(text: Text, pad: Text, length: Num): Text {
     if length <= len(text): return text
     length = len(text) - length
-    pad = trust $printf "%{length}s" "" | tr " " "{pad}"$
+    pad = trust $ printf "%{length}s" "" | tr " " "{pad}" $
     return pad + text
 }
 
@@ -169,7 +169,7 @@ pub fun lpad(text: Text, pad: Text, length: Num): Text {
 pub fun rpad(text: Text, pad: Text, length: Num): Text {
     if length <= len(text): return text
     length = len(text) - length
-    pad = trust $printf "%{length}s" "" | tr " " "{pad}"$
+    pad = trust $ printf "%{length}s" "" | tr " " "{pad}" $
     return text + pad
 }
 
diff --git a/src/tests/stdlib/change_owner.ab b/src/tests/stdlib/change_owner.ab
index ef563658..1ff1215f 100644
--- a/src/tests/stdlib/change_owner.ab
+++ b/src/tests/stdlib/change_owner.ab
@@ -1,16 +1,16 @@
 import { change_owner } from "std/fs"
 // We use `whoami` to get the running user to assign again the same user as permission
 main {
-    let tmpdir = $mktemp -d /tmp/amber-XXXX$ failed {
+    let tmpdir = $ mktemp -d /tmp/amber-XXXX $ failed {
         echo "It wasn't possible to create the folder"
     }
-    $touch {tmpdir}/amber-symbolic$ failed {
+    $ touch {tmpdir}/amber-symbolic $ failed {
         echo "It wasn't possible to create {tmpdir}/amber-symbolic"
     }
-    if change_owner(trust $whoami$, "{tmpdir}/amber-symbolic") {
+    if change_owner(trust $ whoami $, "{tmpdir}/amber-symbolic") {
         echo "Succeded"
     } else {
         echo "File {tmpdir}/amber-symbolic not exists"
     }
-    trust $rm -fr {tmpdir}$
+    trust $ rm -fr {tmpdir} $
 }
diff --git a/src/tests/stdlib/confirm.ab b/src/tests/stdlib/confirm.ab
index cc10890a..389b564f 100644
--- a/src/tests/stdlib/confirm.ab
+++ b/src/tests/stdlib/confirm.ab
@@ -1,11 +1,11 @@
 import * from "std/env"
 main {
-    trust $echo "Y" > /tmp/test_confirm$
-    trust $exec 0< /tmp/test_confirm$
+    trust $ echo "Y" > /tmp/test_confirm $
+    trust $ exec 0< /tmp/test_confirm $
     if confirm("Yes"): echo "Confirm Yes"
-    trust $echo "N" > /tmp/test_confirm$
+    trust $ echo "N" > /tmp/test_confirm $
     if not confirm("No"): echo "Confirm No"
-    trust $echo "" > /tmp/test_confirm$
+    trust $ echo "" > /tmp/test_confirm $
     if confirm("Default", true): echo "Confirm Default"
-    trust $rm /tmp/test_confirm$
+    trust $ rm /tmp/test_confirm $
 }
diff --git a/src/tests/stdlib/create_dir.ab b/src/tests/stdlib/create_dir.ab
index b007f188..df71e038 100644
--- a/src/tests/stdlib/create_dir.ab
+++ b/src/tests/stdlib/create_dir.ab
@@ -2,7 +2,7 @@ import { create_dir, dir_exist } from "std/fs"
 main {
     create_dir("/tmp/amber-test")
     if dir_exist("/tmp/amber-test") {
-        trust $rm -fr /tmp/amber-test$
+        trust $ rm -fr /tmp/amber-test $
         echo "Succeded"
     }
 } 
diff --git a/src/tests/stdlib/create_symbolic_link.ab b/src/tests/stdlib/create_symbolic_link.ab
index dcc7c56f..1d5f9216 100644
--- a/src/tests/stdlib/create_symbolic_link.ab
+++ b/src/tests/stdlib/create_symbolic_link.ab
@@ -1,11 +1,11 @@
 import { create_symbolic_link } from "std/fs"
 main {
-    let tmpdir = trust $mktemp -d /tmp/amber-XXXX$
-    trust $touch {tmpdir}/amber-symbolic$
+    let tmpdir = trust $ mktemp -d /tmp/amber-XXXX $
+    trust $ touch {tmpdir}/amber-symbolic $
     if create_symbolic_link("{tmpdir}/amber-symbolic", "{tmpdir}/amber-symbolic-link") {
         echo "Succeded"
     } else {
         echo "failed"
     }
-    trust $rm -fr {tmpdir}$
+    trust $ rm -fr {tmpdir} $
 } 
diff --git a/src/tests/stdlib/dir_exist.ab b/src/tests/stdlib/dir_exist.ab
index e138006b..906af712 100644
--- a/src/tests/stdlib/dir_exist.ab
+++ b/src/tests/stdlib/dir_exist.ab
@@ -1,10 +1,10 @@
 import * from "std/fs"
 main {
-    let tmpdir = trust $mktemp -d /tmp/amber-XXXX$
+    let tmpdir = trust $ mktemp -d /tmp/amber-XXXX $
     if dir_exist(tmpdir) {
         echo "Succeded"
     } else {
         echo "Not Found"
     }
-    trust $rm -fr {tmpdir}$
+    trust $ rm -fr {tmpdir} $
 }
diff --git a/src/tests/stdlib/file_append.ab b/src/tests/stdlib/file_append.ab
index 1cb09283..cd0eebcb 100644
--- a/src/tests/stdlib/file_append.ab
+++ b/src/tests/stdlib/file_append.ab
@@ -1,12 +1,12 @@
 import * from "std/fs"
 main {
-    let tmpdir = trust $mktemp -d /tmp/amber-XXXX$
-    trust $cd {tmpdir}$
-    trust $touch test.txt$
+    let tmpdir = trust $ mktemp -d /tmp/amber-XXXX $
+    trust $ cd {tmpdir} $
+    trust $ touch test.txt $
     trust file_append("test.txt", "Succeded")
     let f = file_read("test.txt") failed {
         echo "Failed" 
     }
     echo f
-    trust $rm -fr {tmpdir}$
+    trust $ rm -fr {tmpdir} $
 }
diff --git a/src/tests/stdlib/file_exist.ab b/src/tests/stdlib/file_exist.ab
index c5cdf70f..cfec3fc9 100644
--- a/src/tests/stdlib/file_exist.ab
+++ b/src/tests/stdlib/file_exist.ab
@@ -1,11 +1,11 @@
 import * from "std/fs"
 main {
-    let tmpdir = trust $mktemp -d /tmp/amber-XXXX$
-    trust $touch {tmpdir}/test.txt$
+    let tmpdir = trust $ mktemp -d /tmp/amber-XXXX $
+    trust $ touch {tmpdir}/test.txt $
     if file_exist("{tmpdir}/test.txt") {
         echo "Succeded"
     } else {
         echo "Not Found"
     }
-    trust $rm -fr {tmpdir}$
+    trust $ rm -fr {tmpdir} $
 }
diff --git a/src/tests/stdlib/file_read.ab b/src/tests/stdlib/file_read.ab
index 011e45bf..ae466a50 100644
--- a/src/tests/stdlib/file_read.ab
+++ b/src/tests/stdlib/file_read.ab
@@ -1,11 +1,11 @@
 import * from "std/fs"
 main {
-    let tmpdir = trust $mktemp -d /tmp/amber-XXXX$
-    trust $cd {tmpdir}$
+    let tmpdir = trust $ mktemp -d /tmp/amber-XXXX $
+    trust $ cd {tmpdir} $
     trust file_write("test.txt", "Succeded")
     let f = file_read("test.txt") failed {
         echo "Failed" 
     }
     echo f
-    trust $rm -fr {tmpdir}$
+    trust $ rm -fr {tmpdir} $
 }
diff --git a/src/tests/stdlib/file_write.ab b/src/tests/stdlib/file_write.ab
index 011e45bf..ae466a50 100644
--- a/src/tests/stdlib/file_write.ab
+++ b/src/tests/stdlib/file_write.ab
@@ -1,11 +1,11 @@
 import * from "std/fs"
 main {
-    let tmpdir = trust $mktemp -d /tmp/amber-XXXX$
-    trust $cd {tmpdir}$
+    let tmpdir = trust $ mktemp -d /tmp/amber-XXXX $
+    trust $ cd {tmpdir} $
     trust file_write("test.txt", "Succeded")
     let f = file_read("test.txt") failed {
         echo "Failed" 
     }
     echo f
-    trust $rm -fr {tmpdir}$
+    trust $ rm -fr {tmpdir} $
 }
diff --git a/src/tests/stdlib/get_env_var.ab b/src/tests/stdlib/get_env_var.ab
index cbca6046..da33d2e5 100644
--- a/src/tests/stdlib/get_env_var.ab
+++ b/src/tests/stdlib/get_env_var.ab
@@ -1,11 +1,11 @@
 import { get_env_var } from "std/env"
 import { file_write } from "std/fs"
 main {
-    let tmpdir = trust $mktemp -d /tmp/amber-XXXX$
-    trust $cd {tmpdir}$
+    let tmpdir = trust $ mktemp -d /tmp/amber-XXXX $
+    trust $ cd {tmpdir} $
     trust file_write(".env", "TEST=1")
     if get_env_var("TEST") == "1" {
         echo "Succeded"
     }
-    trust $rm -fr {tmpdir}$
+    trust $ rm -fr {tmpdir} $
 } 
diff --git a/src/tests/stdlib/input.ab b/src/tests/stdlib/input.ab
index 68472421..db28fbfa 100644
--- a/src/tests/stdlib/input.ab
+++ b/src/tests/stdlib/input.ab
@@ -4,9 +4,9 @@ import * from "std/env"
 // Hello, Amber
 
 main {
-    trust $echo "Amber" >> /tmp/test_input$
-    trust $exec 0< /tmp/test_input$
+    trust $ echo "Amber" >> /tmp/test_input $
+    trust $ exec 0< /tmp/test_input $
     let name = input("Please enter your name:")
     echo "Hello, " + name
-    trust $rm /tmp/test_input$
+    trust $ rm /tmp/test_input $
 }
diff --git a/src/tests/stdlib/input_hidden.ab b/src/tests/stdlib/input_hidden.ab
index 331d0be1..5138fb25 100644
--- a/src/tests/stdlib/input_hidden.ab
+++ b/src/tests/stdlib/input_hidden.ab
@@ -4,9 +4,9 @@ import * from "std/env"
 // Hello, Amber
 
 main {
-    trust $echo "Amber" >> /tmp/test_input$
-    trust $exec 0< /tmp/test_input$
+    trust $ echo "Amber" >> /tmp/test_input $
+    trust $ exec 0< /tmp/test_input $
     let name = input_hidden("Please enter your name:")
     echo "Hello, " + name
-    trust $rm /tmp/test_input$
+    trust $ rm /tmp/test_input $
 }
diff --git a/src/tests/stdlib/load_env_file.ab b/src/tests/stdlib/load_env_file.ab
index ab12a6b0..617d2cfd 100644
--- a/src/tests/stdlib/load_env_file.ab
+++ b/src/tests/stdlib/load_env_file.ab
@@ -5,12 +5,12 @@ import { file_write } from "std/fs"
 // yes
 
 main {
-    let tmpdir = trust $mktemp -d /tmp/amber-XXXX$
-    trust $cd {tmpdir}$
+    let tmpdir = trust $ mktemp -d /tmp/amber-XXXX $
+    trust $ cd {tmpdir} $
     trust file_write(".env", "TEST=1")
     load_env_file()
     if get_env_var("TEST") == "1" {
         echo "yes"
     }
-    trust $rm -fr {tmpdir}$
+    trust $ rm -fr {tmpdir} $
 } 
diff --git a/src/tests/stdlib/make_executable.ab b/src/tests/stdlib/make_executable.ab
index af4d7a13..638cbe8a 100644
--- a/src/tests/stdlib/make_executable.ab
+++ b/src/tests/stdlib/make_executable.ab
@@ -4,10 +4,10 @@ import { make_executable } from "std/fs"
 // created
 
 main {
-    let tmpdir = trust $mktemp -d /tmp/amber-XXXX$
-    trust $touch {tmpdir}/amber-symbolic$
+    let tmpdir = trust $ mktemp -d /tmp/amber-XXXX $
+    trust $ touch {tmpdir}/amber-symbolic $
     if make_executable("{tmpdir}/amber-symbolic") {
         echo "created"
     }
-    trust $rm -fr {tmpdir}$
+    trust $ rm -fr {tmpdir} $
 } 
diff --git a/src/tests/stdlib/no_output/download.ab b/src/tests/stdlib/no_output/download.ab
index f6687b0a..f688e79c 100644
--- a/src/tests/stdlib/no_output/download.ab
+++ b/src/tests/stdlib/no_output/download.ab
@@ -1,12 +1,12 @@
 import * from "std/http"
 import * from "std/fs"
 main {
-	let tmpdir = trust $mktemp -d /tmp/amber-XXXX$
-	trust $cd {tmpdir}$
+	let tmpdir = trust $ mktemp -d /tmp/amber-XXXX $
+	trust $ cd {tmpdir} $
 	if download("http://127.0.0.1:8081/", "./test.txt") {
 		if file_exist("./test.txt") {
 			    echo "ok"
 		}
 	}
-	trust $rm -fr {tmpdir}$
+	trust $ rm -fr {tmpdir} $
 }
diff --git a/src/tests/stdlib/now.ab b/src/tests/stdlib/now.ab
index f4fcd935..f5559a43 100644
--- a/src/tests/stdlib/now.ab
+++ b/src/tests/stdlib/now.ab
@@ -1,5 +1,5 @@
 import * from "std/date"
 
 main {
-    if now() == (trust $date +%s$ as Num): echo "Succeded"
-}
\ No newline at end of file
+    if now() == (trust $ date +%s $ as Num): echo "Succeded"
+}
diff --git a/src/tests/stdlib/shell_constant_get.ab b/src/tests/stdlib/shell_constant_get.ab
index 85b01359..690eab36 100644
--- a/src/tests/stdlib/shell_constant_get.ab
+++ b/src/tests/stdlib/shell_constant_get.ab
@@ -1,5 +1,5 @@
 import * from "std/env"
 main {
     trust shell_constant_set("test_shell_constant_get", "Succeded")
-    trust $echo "\$test_shell_constant_get"$
+    trust $ echo "\$test_shell_constant_get" $
 } 
diff --git a/src/tests/stdlib/shell_constant_set.ab b/src/tests/stdlib/shell_constant_set.ab
index 53905925..78c017c6 100644
--- a/src/tests/stdlib/shell_constant_set.ab
+++ b/src/tests/stdlib/shell_constant_set.ab
@@ -2,7 +2,7 @@ import * from "std/env"
 main {
     trust shell_constant_set("test_shell_constant_set", "Succe")
     let str = ""
-    str += trust $echo "\$test_shell_constant_set"$
+    str += trust $ echo "\$test_shell_constant_set" $
     shell_constant_set("test_shell_constant_set", "Succe") failed {
         str += "ded"
     }
diff --git a/src/tests/stdlib/shell_isset.ab b/src/tests/stdlib/shell_isset.ab
index aad63300..f1acca8f 100644
--- a/src/tests/stdlib/shell_isset.ab
+++ b/src/tests/stdlib/shell_isset.ab
@@ -1,6 +1,6 @@
 import * from "std/env"
 main {
-    trust $test_var_isset="test"$
+    trust $ test_var_isset="test" $
     if shell_isset("test_var_isset") {
         echo "Succeded"
     }
diff --git a/src/tests/stdlib/shell_unset.ab b/src/tests/stdlib/shell_unset.ab
index 3f819f35..6312ea6a 100644
--- a/src/tests/stdlib/shell_unset.ab
+++ b/src/tests/stdlib/shell_unset.ab
@@ -1,7 +1,7 @@
 import * from "std/env"
 main {
     trust shell_var_set("test_shell_unset", "Succeded")
-    trust $echo \$test_shell_unset$
+    trust $ echo \$test_shell_unset $
     trust shell_unset("test_shell_unset")
-    trust $echo \$test_shell_unset$
+    trust $ echo \$test_shell_unset $
 }
diff --git a/src/tests/stdlib/shell_var_get.ab b/src/tests/stdlib/shell_var_get.ab
index d4dc44be..f5a9fdb4 100644
--- a/src/tests/stdlib/shell_var_get.ab
+++ b/src/tests/stdlib/shell_var_get.ab
@@ -1,5 +1,5 @@
 import * from "std/env"
 main {
-    trust $export test_shell_var_get="Succeded"$
+    trust $ export test_shell_var_get="Succeded" $
     echo trust shell_var_get("test_shell_var_get")
 }
diff --git a/src/tests/stdlib/shell_var_set.ab b/src/tests/stdlib/shell_var_set.ab
index 95de7b78..d9f06f30 100644
--- a/src/tests/stdlib/shell_var_set.ab
+++ b/src/tests/stdlib/shell_var_set.ab
@@ -1,5 +1,5 @@
 import * from "std/env"
 main {
     trust shell_var_set("test_shell_var_set", "Succeded")
-    trust $echo \$test_shell_var_set$
+    trust $ echo \$test_shell_var_set $
 }
diff --git a/src/tests/validity/cd.ab b/src/tests/validity/cd.ab
index e7be0690..4e1a379f 100644
--- a/src/tests/validity/cd.ab
+++ b/src/tests/validity/cd.ab
@@ -2,4 +2,4 @@
 // /tmp
 
 cd "/tmp/"
-trust $pwd$
+trust $ pwd $
diff --git a/src/tests/validity/chained_modifiers.ab b/src/tests/validity/chained_modifiers.ab
index 4c641205..3bc87113 100644
--- a/src/tests/validity/chained_modifiers.ab
+++ b/src/tests/validity/chained_modifiers.ab
@@ -3,9 +3,9 @@
 
 trust silent {
     echo "Hello World"
-    $non-existent command$
+    $ non-existent command $
 }
 // Test for expression
-let _ = silent trust $non-existent command$
+let _ = silent trust $ non-existent command $
 // Test for single statement
-silent trust $non-existent command$
+silent trust $ non-existent command $
diff --git a/src/tests/validity/chained_modifiers_commands.ab b/src/tests/validity/chained_modifiers_commands.ab
index a63af99e..5296d0ec 100644
--- a/src/tests/validity/chained_modifiers_commands.ab
+++ b/src/tests/validity/chained_modifiers_commands.ab
@@ -1,8 +1,8 @@
 trust silent {
     echo "Succeded"
-    $non-existent command$
+    $ non-existent command $
 }
 // Test for expression
-let _ = silent trust $non-existent command$
+let _ = silent trust $ non-existent command $
 // Test for single statement
-silent trust $non-existent command$
+silent trust $ non-existent command $
diff --git a/src/tests/validity/command_inception.ab b/src/tests/validity/command_inception.ab
index 662ea292..4639ef90 100644
--- a/src/tests/validity/command_inception.ab
+++ b/src/tests/validity/command_inception.ab
@@ -1,4 +1,4 @@
 // Output
 // Hello World
 
-$echo {$echo {$echo {$echo Hello World$ failed {}}$ failed {}}$ failed {}}$ failed {}
+$echo {$ echo {$ echo {$ echo Hello World $ failed {}} $ failed {}} $ failed {}} $ failed {}
diff --git a/src/tests/validity/command_interpolation.ab b/src/tests/validity/command_interpolation.ab
index 792e5efa..60e406df 100644
--- a/src/tests/validity/command_interpolation.ab
+++ b/src/tests/validity/command_interpolation.ab
@@ -1,4 +1,4 @@
 // Output
 // Hello World
 
-echo $echo {$echo Hello World$ failed {}}$ failed {}
+echo $ echo {$ echo Hello World $ failed {}} $ failed {}
diff --git a/src/tests/validity/failed.ab b/src/tests/validity/failed.ab
index 53e8c822..2f24dea4 100644
--- a/src/tests/validity/failed.ab
+++ b/src/tests/validity/failed.ab
@@ -7,9 +7,9 @@ let requirements = [true, true, true]
 
 main {
     silent {
-    $make -v$ failed: requirements[0] = false
-        $gcc -v$ failed: requirements[1] = false
-        $you don\'t have this$ failed: requirements[2] = false
+        $ make -v $ failed: requirements[0] = false
+        $ gcc -v $ failed: requirements[1] = false
+        $ you don\'t have this $ failed: requirements[2] = false
     }
 
     if sum(requirements as [Num]) == 3 {
diff --git a/src/tests/validity/infinite_loop.ab b/src/tests/validity/infinite_loop.ab
index c11f6146..5b6e696c 100644
--- a/src/tests/validity/infinite_loop.ab
+++ b/src/tests/validity/infinite_loop.ab
@@ -5,7 +5,7 @@ main {
         if a == 5 {
             continue
         }
-        $printf \"{a} \"$?
+        $ printf \"{a} \" $?
         if a == 10 {
             break
         }
diff --git a/src/tests/validity/mv.ab b/src/tests/validity/mv.ab
index f66eb5cd..cc256459 100644
--- a/src/tests/validity/mv.ab
+++ b/src/tests/validity/mv.ab
@@ -1,12 +1,12 @@
 import * from "std/fs"
 main {
-    let tmpdir = trust $mktemp -d /tmp/amber-XXXX$
-    trust $touch {tmpdir}/a$
+    let tmpdir = trust $ mktemp -d /tmp/amber-XXXX $
+    trust $ touch {tmpdir}/a $
     trust mv "{tmpdir}/a" "{tmpdir}/b"
     if file_exist("{tmpdir}/b") {
         echo "Succeded"
     } else {
         echo "Not Found"
     }
-    trust $rm -fr {tmpdir}$
+    trust $ rm -fr {tmpdir} $
 }
diff --git a/src/tests/validity/silent.ab b/src/tests/validity/silent.ab
index b5323057..ea186588 100644
--- a/src/tests/validity/silent.ab
+++ b/src/tests/validity/silent.ab
@@ -1,6 +1,6 @@
 main {
     silent {
         echo "Succeded"
-        $non-existent command$?
+        $ non-existent command $?
     }
 }
diff --git a/src/tests/validity/status.ab b/src/tests/validity/status.ab
index fcae4c4b..991ae279 100644
--- a/src/tests/validity/status.ab
+++ b/src/tests/validity/status.ab
@@ -2,7 +2,7 @@
 // 127
 // 127
 
-silent $non-existent command$ failed {
+silent $ non-existent command $ failed {
     echo status
     echo status
 }
diff --git a/src/tests/validity/variable_ref_command.ab b/src/tests/validity/variable_ref_command.ab
index 6891d6ec..18365caa 100644
--- a/src/tests/validity/variable_ref_command.ab
+++ b/src/tests/validity/variable_ref_command.ab
@@ -1,5 +1,5 @@
 fun foo(ref a) {
-    a = $echo Succeded$?
+    a = $ echo Succeded $?
 }
 
 let a = ""
diff --git a/src/tests/validity/variable_ref_function_invocation.ab b/src/tests/validity/variable_ref_function_invocation.ab
index 597cda86..cae2e5a7 100644
--- a/src/tests/validity/variable_ref_function_invocation.ab
+++ b/src/tests/validity/variable_ref_function_invocation.ab
@@ -2,7 +2,7 @@
 // "sram"
 
 fun reverse(input: Text): Text {
-    return trust $echo {input} | rev$
+    return trust $ echo {input} | rev $
 }
 
 fun foo(ref a) {
diff --git a/test_files/str/trim.ab b/test_files/str/trim.ab
index c3a527da..43d780d3 100644
--- a/test_files/str/trim.ab
+++ b/test_files/str/trim.ab
@@ -1,5 +1,5 @@
 pub fun trim(text) {
-    return trust $echo "{text}" | xargs$
+    return trust $ echo "{text}" | xargs $
 }
 
 main {

From b7f1a5a375bfd094f5d6e4a59bdb81c2d139769e Mon Sep 17 00:00:00 2001
From: Huw Walters <huw.walters@gmail.com>
Date: Mon, 21 Oct 2024 19:52:44 +0100
Subject: [PATCH 2/6] Change "rm -fr" to "rm -rf".

---
 src/tests/stdlib/change_owner.ab       | 2 +-
 src/tests/stdlib/create_dir.ab         | 2 +-
 src/tests/stdlib/dir_exist.ab          | 2 +-
 src/tests/stdlib/file_append.ab        | 2 +-
 src/tests/stdlib/file_exist.ab         | 2 +-
 src/tests/stdlib/file_read.ab          | 2 +-
 src/tests/stdlib/file_write.ab         | 2 +-
 src/tests/stdlib/get_env_var.ab        | 2 +-
 src/tests/stdlib/load_env_file.ab      | 2 +-
 src/tests/stdlib/make_executable.ab    | 2 +-
 src/tests/stdlib/no_output/download.ab | 2 +-
 src/tests/validity/mv.ab               | 2 +-
 12 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/src/tests/stdlib/change_owner.ab b/src/tests/stdlib/change_owner.ab
index 1ff1215f..1f8794f9 100644
--- a/src/tests/stdlib/change_owner.ab
+++ b/src/tests/stdlib/change_owner.ab
@@ -12,5 +12,5 @@ main {
     } else {
         echo "File {tmpdir}/amber-symbolic not exists"
     }
-    trust $ rm -fr {tmpdir} $
+    trust $ rm -rf {tmpdir} $
 }
diff --git a/src/tests/stdlib/create_dir.ab b/src/tests/stdlib/create_dir.ab
index df71e038..278086c6 100644
--- a/src/tests/stdlib/create_dir.ab
+++ b/src/tests/stdlib/create_dir.ab
@@ -2,7 +2,7 @@ import { create_dir, dir_exist } from "std/fs"
 main {
     create_dir("/tmp/amber-test")
     if dir_exist("/tmp/amber-test") {
-        trust $ rm -fr /tmp/amber-test $
+        trust $ rm -rf /tmp/amber-test $
         echo "Succeded"
     }
 } 
diff --git a/src/tests/stdlib/dir_exist.ab b/src/tests/stdlib/dir_exist.ab
index 906af712..1179a4a8 100644
--- a/src/tests/stdlib/dir_exist.ab
+++ b/src/tests/stdlib/dir_exist.ab
@@ -6,5 +6,5 @@ main {
     } else {
         echo "Not Found"
     }
-    trust $ rm -fr {tmpdir} $
+    trust $ rm -rf {tmpdir} $
 }
diff --git a/src/tests/stdlib/file_append.ab b/src/tests/stdlib/file_append.ab
index cd0eebcb..6755e3be 100644
--- a/src/tests/stdlib/file_append.ab
+++ b/src/tests/stdlib/file_append.ab
@@ -8,5 +8,5 @@ main {
         echo "Failed" 
     }
     echo f
-    trust $ rm -fr {tmpdir} $
+    trust $ rm -rf {tmpdir} $
 }
diff --git a/src/tests/stdlib/file_exist.ab b/src/tests/stdlib/file_exist.ab
index cfec3fc9..c4393b4f 100644
--- a/src/tests/stdlib/file_exist.ab
+++ b/src/tests/stdlib/file_exist.ab
@@ -7,5 +7,5 @@ main {
     } else {
         echo "Not Found"
     }
-    trust $ rm -fr {tmpdir} $
+    trust $ rm -rf {tmpdir} $
 }
diff --git a/src/tests/stdlib/file_read.ab b/src/tests/stdlib/file_read.ab
index ae466a50..201f70e3 100644
--- a/src/tests/stdlib/file_read.ab
+++ b/src/tests/stdlib/file_read.ab
@@ -7,5 +7,5 @@ main {
         echo "Failed" 
     }
     echo f
-    trust $ rm -fr {tmpdir} $
+    trust $ rm -rf {tmpdir} $
 }
diff --git a/src/tests/stdlib/file_write.ab b/src/tests/stdlib/file_write.ab
index ae466a50..201f70e3 100644
--- a/src/tests/stdlib/file_write.ab
+++ b/src/tests/stdlib/file_write.ab
@@ -7,5 +7,5 @@ main {
         echo "Failed" 
     }
     echo f
-    trust $ rm -fr {tmpdir} $
+    trust $ rm -rf {tmpdir} $
 }
diff --git a/src/tests/stdlib/get_env_var.ab b/src/tests/stdlib/get_env_var.ab
index da33d2e5..8b702717 100644
--- a/src/tests/stdlib/get_env_var.ab
+++ b/src/tests/stdlib/get_env_var.ab
@@ -7,5 +7,5 @@ main {
     if get_env_var("TEST") == "1" {
         echo "Succeded"
     }
-    trust $ rm -fr {tmpdir} $
+    trust $ rm -rf {tmpdir} $
 } 
diff --git a/src/tests/stdlib/load_env_file.ab b/src/tests/stdlib/load_env_file.ab
index 617d2cfd..25a57469 100644
--- a/src/tests/stdlib/load_env_file.ab
+++ b/src/tests/stdlib/load_env_file.ab
@@ -12,5 +12,5 @@ main {
     if get_env_var("TEST") == "1" {
         echo "yes"
     }
-    trust $ rm -fr {tmpdir} $
+    trust $ rm -rf {tmpdir} $
 } 
diff --git a/src/tests/stdlib/make_executable.ab b/src/tests/stdlib/make_executable.ab
index 638cbe8a..5b7c3454 100644
--- a/src/tests/stdlib/make_executable.ab
+++ b/src/tests/stdlib/make_executable.ab
@@ -9,5 +9,5 @@ main {
     if make_executable("{tmpdir}/amber-symbolic") {
         echo "created"
     }
-    trust $ rm -fr {tmpdir} $
+    trust $ rm -rf {tmpdir} $
 } 
diff --git a/src/tests/stdlib/no_output/download.ab b/src/tests/stdlib/no_output/download.ab
index f688e79c..bcaf19db 100644
--- a/src/tests/stdlib/no_output/download.ab
+++ b/src/tests/stdlib/no_output/download.ab
@@ -8,5 +8,5 @@ main {
 			    echo "ok"
 		}
 	}
-	trust $ rm -fr {tmpdir} $
+	trust $ rm -rf {tmpdir} $
 }
diff --git a/src/tests/validity/mv.ab b/src/tests/validity/mv.ab
index cc256459..55b8d03a 100644
--- a/src/tests/validity/mv.ab
+++ b/src/tests/validity/mv.ab
@@ -8,5 +8,5 @@ main {
     } else {
         echo "Not Found"
     }
-    trust $ rm -fr {tmpdir} $
+    trust $ rm -rf {tmpdir} $
 }

From 6b3c0b1af454ce8cdf52b64e07d0fa7ae086fb39 Mon Sep 17 00:00:00 2001
From: Huw Walters <huw.walters@gmail.com>
Date: Mon, 21 Oct 2024 19:58:08 +0100
Subject: [PATCH 3/6] Change "Succeded" to "Succeeded".

---
 src/tests/mod.rs                                          | 2 +-
 src/tests/stdlib/change_owner.ab                          | 2 +-
 src/tests/stdlib/contains.ab                              | 2 +-
 src/tests/stdlib/create_dir.ab                            | 2 +-
 src/tests/stdlib/create_symbolic_link.ab                  | 2 +-
 src/tests/stdlib/date_add.ab                              | 2 +-
 src/tests/stdlib/date_compare.ab                          | 2 +-
 src/tests/stdlib/date_posix.ab                            | 2 +-
 src/tests/stdlib/dir_exist.ab                             | 2 +-
 src/tests/stdlib/ends_with.ab                             | 2 +-
 src/tests/stdlib/file_append.ab                           | 2 +-
 src/tests/stdlib/file_exist.ab                            | 2 +-
 src/tests/stdlib/file_read.ab                             | 2 +-
 src/tests/stdlib/file_write.ab                            | 2 +-
 src/tests/stdlib/get_env_var.ab                           | 2 +-
 src/tests/stdlib/includes_exact_match.ab                  | 2 +-
 src/tests/stdlib/includes_text_array.ab                   | 2 +-
 src/tests/stdlib/is_command.ab                            | 2 +-
 src/tests/stdlib/is_root.ab                               | 2 +-
 src/tests/stdlib/now.ab                                   | 2 +-
 src/tests/stdlib/replace_once.ab                          | 2 +-
 src/tests/stdlib/shell_constant_get.ab                    | 2 +-
 src/tests/stdlib/shell_constant_set.ab                    | 2 +-
 src/tests/stdlib/shell_isset.ab                           | 2 +-
 src/tests/stdlib/shell_unset.ab                           | 2 +-
 src/tests/stdlib/shell_var_get.ab                         | 2 +-
 src/tests/stdlib/shell_var_set.ab                         | 2 +-
 src/tests/stdlib/starts_with.ab                           | 2 +-
 src/tests/validity/cast.ab                                | 2 +-
 src/tests/validity/chained_modifiers_commands.ab          | 2 +-
 src/tests/validity/failed_block_unwraps_failable_type.ab  | 2 +-
 src/tests/validity/failed_unwraps_failable_type.ab        | 2 +-
 src/tests/validity/function.ab                            | 2 +-
 src/tests/validity/function_failable.ab                   | 2 +-
 src/tests/validity/function_failable_with_typed_return.ab | 2 +-
 src/tests/validity/function_ref_text_escaped.ab           | 2 +-
 src/tests/validity/function_with_typed_args_text.ab       | 2 +-
 src/tests/validity/function_with_typed_return.ab          | 2 +-
 src/tests/validity/import_existing_file.ab                | 2 +-
 src/tests/validity/main_args.ab                           | 2 +-
 src/tests/validity/mv.ab                                  | 2 +-
 src/tests/validity/public_import.ab                       | 2 +-
 src/tests/validity/silent.ab                              | 2 +-
 src/tests/validity/unsafe_unwraps_failable_type.ab        | 2 +-
 src/tests/validity/variable_ref_command.ab                | 2 +-
 45 files changed, 45 insertions(+), 45 deletions(-)

diff --git a/src/tests/mod.rs b/src/tests/mod.rs
index 1536b56b..bb943393 100644
--- a/src/tests/mod.rs
+++ b/src/tests/mod.rs
@@ -55,7 +55,7 @@ pub fn script_test(input: &str) {
         output = match output_path.exists() {
             true => fs::read_to_string(output_path)
                 .unwrap_or_else(|_| panic!("Failed to open {input}.output.txt file")),
-            _ => "Succeded".to_string(),
+            _ => "Succeeded".to_string(),
         };
     }
 
diff --git a/src/tests/stdlib/change_owner.ab b/src/tests/stdlib/change_owner.ab
index 1f8794f9..bfbcd876 100644
--- a/src/tests/stdlib/change_owner.ab
+++ b/src/tests/stdlib/change_owner.ab
@@ -8,7 +8,7 @@ main {
         echo "It wasn't possible to create {tmpdir}/amber-symbolic"
     }
     if change_owner(trust $ whoami $, "{tmpdir}/amber-symbolic") {
-        echo "Succeded"
+        echo "Succeeded"
     } else {
         echo "File {tmpdir}/amber-symbolic not exists"
     }
diff --git a/src/tests/stdlib/contains.ab b/src/tests/stdlib/contains.ab
index 97be25f9..07cd19e4 100644
--- a/src/tests/stdlib/contains.ab
+++ b/src/tests/stdlib/contains.ab
@@ -1,6 +1,6 @@
 import { contains } from "std/text"
 main {
     if contains("Hello World", "World") {
-        echo "Succeded"
+        echo "Succeeded"
     }
 } 
diff --git a/src/tests/stdlib/create_dir.ab b/src/tests/stdlib/create_dir.ab
index 278086c6..18a23414 100644
--- a/src/tests/stdlib/create_dir.ab
+++ b/src/tests/stdlib/create_dir.ab
@@ -3,6 +3,6 @@ main {
     create_dir("/tmp/amber-test")
     if dir_exist("/tmp/amber-test") {
         trust $ rm -rf /tmp/amber-test $
-        echo "Succeded"
+        echo "Succeeded"
     }
 } 
diff --git a/src/tests/stdlib/create_symbolic_link.ab b/src/tests/stdlib/create_symbolic_link.ab
index 1d5f9216..fdad726b 100644
--- a/src/tests/stdlib/create_symbolic_link.ab
+++ b/src/tests/stdlib/create_symbolic_link.ab
@@ -3,7 +3,7 @@ main {
     let tmpdir = trust $ mktemp -d /tmp/amber-XXXX $
     trust $ touch {tmpdir}/amber-symbolic $
     if create_symbolic_link("{tmpdir}/amber-symbolic", "{tmpdir}/amber-symbolic-link") {
-        echo "Succeded"
+        echo "Succeeded"
     } else {
         echo "failed"
     }
diff --git a/src/tests/stdlib/date_add.ab b/src/tests/stdlib/date_add.ab
index 7935d325..8867bfa6 100644
--- a/src/tests/stdlib/date_add.ab
+++ b/src/tests/stdlib/date_add.ab
@@ -1,5 +1,5 @@
 import * from "std/date"
 
 main {
-    if trust date_add("+17 Days", "2009-02-07T09:46:40UTC", true) == "2009-02-24T09:46:40UTC": echo "Succeded"
+    if trust date_add("+17 Days", "2009-02-07T09:46:40UTC", true) == "2009-02-24T09:46:40UTC": echo "Succeeded"
 }
\ No newline at end of file
diff --git a/src/tests/stdlib/date_compare.ab b/src/tests/stdlib/date_compare.ab
index f5cf2568..2a082ba7 100644
--- a/src/tests/stdlib/date_compare.ab
+++ b/src/tests/stdlib/date_compare.ab
@@ -1,5 +1,5 @@
 import * from "std/date"
 
 main {
-    if (trust date_compare("2000-01-01") == -1 and trust date_compare("2100-01-01") == 1) : echo "Succeded"
+    if (trust date_compare("2000-01-01") == -1 and trust date_compare("2100-01-01") == 1) : echo "Succeeded"
 }
\ No newline at end of file
diff --git a/src/tests/stdlib/date_posix.ab b/src/tests/stdlib/date_posix.ab
index 8d618768..f3ac8a9f 100644
--- a/src/tests/stdlib/date_posix.ab
+++ b/src/tests/stdlib/date_posix.ab
@@ -1,5 +1,5 @@
 import * from "std/date"
 
 main {
-	if trust date_posix("", "@1234000000", true) == "2009-02-07T09:46:40UTC": echo "Succeded"
+	if trust date_posix("", "@1234000000", true) == "2009-02-07T09:46:40UTC": echo "Succeeded"
 }
\ No newline at end of file
diff --git a/src/tests/stdlib/dir_exist.ab b/src/tests/stdlib/dir_exist.ab
index 1179a4a8..6ff73149 100644
--- a/src/tests/stdlib/dir_exist.ab
+++ b/src/tests/stdlib/dir_exist.ab
@@ -2,7 +2,7 @@ import * from "std/fs"
 main {
     let tmpdir = trust $ mktemp -d /tmp/amber-XXXX $
     if dir_exist(tmpdir) {
-        echo "Succeded"
+        echo "Succeeded"
     } else {
         echo "Not Found"
     }
diff --git a/src/tests/stdlib/ends_with.ab b/src/tests/stdlib/ends_with.ab
index c483b66f..f6084bf9 100644
--- a/src/tests/stdlib/ends_with.ab
+++ b/src/tests/stdlib/ends_with.ab
@@ -2,6 +2,6 @@ import * from "std/text"
 
 main {
     if ends_with("hello world", "world") {
-        echo "Succeded"
+        echo "Succeeded"
     } 
 } 
diff --git a/src/tests/stdlib/file_append.ab b/src/tests/stdlib/file_append.ab
index 6755e3be..281f1bad 100644
--- a/src/tests/stdlib/file_append.ab
+++ b/src/tests/stdlib/file_append.ab
@@ -3,7 +3,7 @@ main {
     let tmpdir = trust $ mktemp -d /tmp/amber-XXXX $
     trust $ cd {tmpdir} $
     trust $ touch test.txt $
-    trust file_append("test.txt", "Succeded")
+    trust file_append("test.txt", "Succeeded")
     let f = file_read("test.txt") failed {
         echo "Failed" 
     }
diff --git a/src/tests/stdlib/file_exist.ab b/src/tests/stdlib/file_exist.ab
index c4393b4f..ee31d723 100644
--- a/src/tests/stdlib/file_exist.ab
+++ b/src/tests/stdlib/file_exist.ab
@@ -3,7 +3,7 @@ main {
     let tmpdir = trust $ mktemp -d /tmp/amber-XXXX $
     trust $ touch {tmpdir}/test.txt $
     if file_exist("{tmpdir}/test.txt") {
-        echo "Succeded"
+        echo "Succeeded"
     } else {
         echo "Not Found"
     }
diff --git a/src/tests/stdlib/file_read.ab b/src/tests/stdlib/file_read.ab
index 201f70e3..075edc99 100644
--- a/src/tests/stdlib/file_read.ab
+++ b/src/tests/stdlib/file_read.ab
@@ -2,7 +2,7 @@ import * from "std/fs"
 main {
     let tmpdir = trust $ mktemp -d /tmp/amber-XXXX $
     trust $ cd {tmpdir} $
-    trust file_write("test.txt", "Succeded")
+    trust file_write("test.txt", "Succeeded")
     let f = file_read("test.txt") failed {
         echo "Failed" 
     }
diff --git a/src/tests/stdlib/file_write.ab b/src/tests/stdlib/file_write.ab
index 201f70e3..075edc99 100644
--- a/src/tests/stdlib/file_write.ab
+++ b/src/tests/stdlib/file_write.ab
@@ -2,7 +2,7 @@ import * from "std/fs"
 main {
     let tmpdir = trust $ mktemp -d /tmp/amber-XXXX $
     trust $ cd {tmpdir} $
-    trust file_write("test.txt", "Succeded")
+    trust file_write("test.txt", "Succeeded")
     let f = file_read("test.txt") failed {
         echo "Failed" 
     }
diff --git a/src/tests/stdlib/get_env_var.ab b/src/tests/stdlib/get_env_var.ab
index 8b702717..0a07f3e0 100644
--- a/src/tests/stdlib/get_env_var.ab
+++ b/src/tests/stdlib/get_env_var.ab
@@ -5,7 +5,7 @@ main {
     trust $ cd {tmpdir} $
     trust file_write(".env", "TEST=1")
     if get_env_var("TEST") == "1" {
-        echo "Succeded"
+        echo "Succeeded"
     }
     trust $ rm -rf {tmpdir} $
 } 
diff --git a/src/tests/stdlib/includes_exact_match.ab b/src/tests/stdlib/includes_exact_match.ab
index 791cf99c..6e982993 100644
--- a/src/tests/stdlib/includes_exact_match.ab
+++ b/src/tests/stdlib/includes_exact_match.ab
@@ -3,7 +3,7 @@ import * from "std/array"
 main {
     let array = ["apple", "banana cherry"]
     if includes(array, "banana cherry") {
-        echo "Succeded"
+        echo "Succeeded"
     } else {
         echo "Not Found"
     }
diff --git a/src/tests/stdlib/includes_text_array.ab b/src/tests/stdlib/includes_text_array.ab
index 990c1c56..123bc166 100644
--- a/src/tests/stdlib/includes_text_array.ab
+++ b/src/tests/stdlib/includes_text_array.ab
@@ -3,7 +3,7 @@ import * from "std/array"
 main {
     let array = ["apple", "banana", "cherry"]
     if includes(array, "banana") {
-        echo "Succeded"
+        echo "Succeeded"
     } else {
         echo "Not Found"
     }
diff --git a/src/tests/stdlib/is_command.ab b/src/tests/stdlib/is_command.ab
index ec358cff..b8f7187d 100644
--- a/src/tests/stdlib/is_command.ab
+++ b/src/tests/stdlib/is_command.ab
@@ -1,7 +1,7 @@
 import { is_command } from "std/env"
 main {
     if is_command("cat") {
-        echo "Succeded"
+        echo "Succeeded"
     }
 
     if is_command("this_is_not_command_amber") {
diff --git a/src/tests/stdlib/is_root.ab b/src/tests/stdlib/is_root.ab
index f9d34ee6..82d9cd0d 100644
--- a/src/tests/stdlib/is_root.ab
+++ b/src/tests/stdlib/is_root.ab
@@ -1,6 +1,6 @@
 import { is_root } from "std/env"
 main {
     if not is_root() {
-        echo "Succeded"
+        echo "Succeeded"
     }
 } 
diff --git a/src/tests/stdlib/now.ab b/src/tests/stdlib/now.ab
index f5559a43..d4fb935a 100644
--- a/src/tests/stdlib/now.ab
+++ b/src/tests/stdlib/now.ab
@@ -1,5 +1,5 @@
 import * from "std/date"
 
 main {
-    if now() == (trust $ date +%s $ as Num): echo "Succeded"
+    if now() == (trust $ date +%s $ as Num): echo "Succeeded"
 }
diff --git a/src/tests/stdlib/replace_once.ab b/src/tests/stdlib/replace_once.ab
index dc83e1b9..b7f9f46f 100644
--- a/src/tests/stdlib/replace_once.ab
+++ b/src/tests/stdlib/replace_once.ab
@@ -1,4 +1,4 @@
 import * from "std/text"
 main {
-    echo replace_once("Sucworld", "world", "ceded")
+    echo replace_once("Succinctly", "inctly", "eeded")
 }
diff --git a/src/tests/stdlib/shell_constant_get.ab b/src/tests/stdlib/shell_constant_get.ab
index 690eab36..7288d92b 100644
--- a/src/tests/stdlib/shell_constant_get.ab
+++ b/src/tests/stdlib/shell_constant_get.ab
@@ -1,5 +1,5 @@
 import * from "std/env"
 main {
-    trust shell_constant_set("test_shell_constant_get", "Succeded")
+    trust shell_constant_set("test_shell_constant_get", "Succeeded")
     trust $ echo "\$test_shell_constant_get" $
 } 
diff --git a/src/tests/stdlib/shell_constant_set.ab b/src/tests/stdlib/shell_constant_set.ab
index 78c017c6..a11f7e59 100644
--- a/src/tests/stdlib/shell_constant_set.ab
+++ b/src/tests/stdlib/shell_constant_set.ab
@@ -4,7 +4,7 @@ main {
     let str = ""
     str += trust $ echo "\$test_shell_constant_set" $
     shell_constant_set("test_shell_constant_set", "Succe") failed {
-        str += "ded"
+        str += "eded"
     }
     echo str
 } 
diff --git a/src/tests/stdlib/shell_isset.ab b/src/tests/stdlib/shell_isset.ab
index f1acca8f..27a9187f 100644
--- a/src/tests/stdlib/shell_isset.ab
+++ b/src/tests/stdlib/shell_isset.ab
@@ -2,7 +2,7 @@ import * from "std/env"
 main {
     trust $ test_var_isset="test" $
     if shell_isset("test_var_isset") {
-        echo "Succeded"
+        echo "Succeeded"
     }
 
     if shell_isset("test_var_isset2") {
diff --git a/src/tests/stdlib/shell_unset.ab b/src/tests/stdlib/shell_unset.ab
index 6312ea6a..0e239582 100644
--- a/src/tests/stdlib/shell_unset.ab
+++ b/src/tests/stdlib/shell_unset.ab
@@ -1,6 +1,6 @@
 import * from "std/env"
 main {
-    trust shell_var_set("test_shell_unset", "Succeded")
+    trust shell_var_set("test_shell_unset", "Succeeded")
     trust $ echo \$test_shell_unset $
     trust shell_unset("test_shell_unset")
     trust $ echo \$test_shell_unset $
diff --git a/src/tests/stdlib/shell_var_get.ab b/src/tests/stdlib/shell_var_get.ab
index f5a9fdb4..7882ed00 100644
--- a/src/tests/stdlib/shell_var_get.ab
+++ b/src/tests/stdlib/shell_var_get.ab
@@ -1,5 +1,5 @@
 import * from "std/env"
 main {
-    trust $ export test_shell_var_get="Succeded" $
+    trust $ export test_shell_var_get="Succeeded" $
     echo trust shell_var_get("test_shell_var_get")
 }
diff --git a/src/tests/stdlib/shell_var_set.ab b/src/tests/stdlib/shell_var_set.ab
index d9f06f30..e4a9c5b4 100644
--- a/src/tests/stdlib/shell_var_set.ab
+++ b/src/tests/stdlib/shell_var_set.ab
@@ -1,5 +1,5 @@
 import * from "std/env"
 main {
-    trust shell_var_set("test_shell_var_set", "Succeded")
+    trust shell_var_set("test_shell_var_set", "Succeeded")
     trust $ echo \$test_shell_var_set $
 }
diff --git a/src/tests/stdlib/starts_with.ab b/src/tests/stdlib/starts_with.ab
index 103888aa..faf15b29 100644
--- a/src/tests/stdlib/starts_with.ab
+++ b/src/tests/stdlib/starts_with.ab
@@ -2,6 +2,6 @@ import * from "std/text"
 
 main {
     if starts_with("hello world", "hello") {
-        echo "Succeded"
+        echo "Succeeded"
     } 
 } 
diff --git a/src/tests/validity/cast.ab b/src/tests/validity/cast.ab
index c82b1c4e..ee6dfc53 100644
--- a/src/tests/validity/cast.ab
+++ b/src/tests/validity/cast.ab
@@ -4,5 +4,5 @@ fun foo(input: Text): Bool {
 }
 
 if foo("15") {
-    echo "Succeded"
+    echo "Succeeded"
 }
diff --git a/src/tests/validity/chained_modifiers_commands.ab b/src/tests/validity/chained_modifiers_commands.ab
index 5296d0ec..c0922a40 100644
--- a/src/tests/validity/chained_modifiers_commands.ab
+++ b/src/tests/validity/chained_modifiers_commands.ab
@@ -1,5 +1,5 @@
 trust silent {
-    echo "Succeded"
+    echo "Succeeded"
     $ non-existent command $
 }
 // Test for expression
diff --git a/src/tests/validity/failed_block_unwraps_failable_type.ab b/src/tests/validity/failed_block_unwraps_failable_type.ab
index 157dfcf9..1abd9bac 100644
--- a/src/tests/validity/failed_block_unwraps_failable_type.ab
+++ b/src/tests/validity/failed_block_unwraps_failable_type.ab
@@ -8,4 +8,4 @@ fun failable(): Num? {
 
 let a = failable() failed: echo "Failed"
 
-if a is Num: echo "Succeded"
+if a is Num: echo "Succeeded"
diff --git a/src/tests/validity/failed_unwraps_failable_type.ab b/src/tests/validity/failed_unwraps_failable_type.ab
index 157dfcf9..1abd9bac 100644
--- a/src/tests/validity/failed_unwraps_failable_type.ab
+++ b/src/tests/validity/failed_unwraps_failable_type.ab
@@ -8,4 +8,4 @@ fun failable(): Num? {
 
 let a = failable() failed: echo "Failed"
 
-if a is Num: echo "Succeded"
+if a is Num: echo "Succeeded"
diff --git a/src/tests/validity/function.ab b/src/tests/validity/function.ab
index 9ec6d22c..b33f5303 100644
--- a/src/tests/validity/function.ab
+++ b/src/tests/validity/function.ab
@@ -1,4 +1,4 @@
 fun test() {
-    return "Succeded"
+    return "Succeeded"
 }
 echo test()
diff --git a/src/tests/validity/function_failable.ab b/src/tests/validity/function_failable.ab
index 5b9d70eb..3c257219 100644
--- a/src/tests/validity/function_failable.ab
+++ b/src/tests/validity/function_failable.ab
@@ -6,4 +6,4 @@ fun test() {
     return 42
 }
 
-test() failed: echo "Succeded"
+test() failed: echo "Succeeded"
diff --git a/src/tests/validity/function_failable_with_typed_return.ab b/src/tests/validity/function_failable_with_typed_return.ab
index 8b605c0b..26ac49f4 100644
--- a/src/tests/validity/function_failable_with_typed_return.ab
+++ b/src/tests/validity/function_failable_with_typed_return.ab
@@ -6,4 +6,4 @@ pub fun test(): Num? {
     return 42
 }
 
-echo test() failed: echo "Succeded"
+echo test() failed: echo "Succeeded"
diff --git a/src/tests/validity/function_ref_text_escaped.ab b/src/tests/validity/function_ref_text_escaped.ab
index 00145b20..2ee4ce11 100644
--- a/src/tests/validity/function_ref_text_escaped.ab
+++ b/src/tests/validity/function_ref_text_escaped.ab
@@ -1,5 +1,5 @@
 fun test(ref a) {
-    a = "Succeded"
+    a = "Succeeded"
 }
 
 let a = "Goodbye World"
diff --git a/src/tests/validity/function_with_typed_args_text.ab b/src/tests/validity/function_with_typed_args_text.ab
index 8350fb0a..769b3ca1 100644
--- a/src/tests/validity/function_with_typed_args_text.ab
+++ b/src/tests/validity/function_with_typed_args_text.ab
@@ -1,4 +1,4 @@
 pub fun test(a: Text, b: Text) {
     echo a + b
 }
-test("Suc", "ceded")
+test("Suc", "ceeded")
diff --git a/src/tests/validity/function_with_typed_return.ab b/src/tests/validity/function_with_typed_return.ab
index e32a3834..c9d24817 100644
--- a/src/tests/validity/function_with_typed_return.ab
+++ b/src/tests/validity/function_with_typed_return.ab
@@ -1,5 +1,5 @@
 pub fun test(): Text {
-    return "Succeded"
+    return "Succeeded"
 }
 
 echo test()
diff --git a/src/tests/validity/import_existing_file.ab b/src/tests/validity/import_existing_file.ab
index 5a187b40..b7c5c612 100644
--- a/src/tests/validity/import_existing_file.ab
+++ b/src/tests/validity/import_existing_file.ab
@@ -1,2 +1,2 @@
 import * from "test_files/str/trim.ab"
-echo trim("    Succeded     ")
+echo trim("    Succeeded     ")
diff --git a/src/tests/validity/main_args.ab b/src/tests/validity/main_args.ab
index 017db5ff..684ff595 100644
--- a/src/tests/validity/main_args.ab
+++ b/src/tests/validity/main_args.ab
@@ -1,3 +1,3 @@
 main(args) {
-    if args is [Text] { echo "Succeded" }
+    if args is [Text] { echo "Succeeded" }
 }
diff --git a/src/tests/validity/mv.ab b/src/tests/validity/mv.ab
index 55b8d03a..1909c4cb 100644
--- a/src/tests/validity/mv.ab
+++ b/src/tests/validity/mv.ab
@@ -4,7 +4,7 @@ main {
     trust $ touch {tmpdir}/a $
     trust mv "{tmpdir}/a" "{tmpdir}/b"
     if file_exist("{tmpdir}/b") {
-        echo "Succeded"
+        echo "Succeeded"
     } else {
         echo "Not Found"
     }
diff --git a/src/tests/validity/public_import.ab b/src/tests/validity/public_import.ab
index a09f0e1b..486b0e44 100644
--- a/src/tests/validity/public_import.ab
+++ b/src/tests/validity/public_import.ab
@@ -1,2 +1,2 @@
 import * from "test_files/is_even.ab"
-echo trim(" Succeded ")
+echo trim(" Succeeded ")
diff --git a/src/tests/validity/silent.ab b/src/tests/validity/silent.ab
index ea186588..01e15f2b 100644
--- a/src/tests/validity/silent.ab
+++ b/src/tests/validity/silent.ab
@@ -1,6 +1,6 @@
 main {
     silent {
-        echo "Succeded"
+        echo "Succeeded"
         $ non-existent command $?
     }
 }
diff --git a/src/tests/validity/unsafe_unwraps_failable_type.ab b/src/tests/validity/unsafe_unwraps_failable_type.ab
index 43dac273..38c98fb4 100644
--- a/src/tests/validity/unsafe_unwraps_failable_type.ab
+++ b/src/tests/validity/unsafe_unwraps_failable_type.ab
@@ -6,4 +6,4 @@ fun test(): Num? {
     return 42
 }
 
-if trust test() is Num: echo "Succeded"
+if trust test() is Num: echo "Succeeded"
diff --git a/src/tests/validity/variable_ref_command.ab b/src/tests/validity/variable_ref_command.ab
index 18365caa..ff7dccc4 100644
--- a/src/tests/validity/variable_ref_command.ab
+++ b/src/tests/validity/variable_ref_command.ab
@@ -1,5 +1,5 @@
 fun foo(ref a) {
-    a = $ echo Succeded $?
+    a = $ echo Succeeded $?
 }
 
 let a = ""

From 89ed5f96849be771f76a8b55add8a83f403a6aa2 Mon Sep 17 00:00:00 2001
From: Huw Walters <huw.walters@gmail.com>
Date: Sat, 26 Oct 2024 09:05:52 +0100
Subject: [PATCH 4/6] Add whitespace to more Bash commands.

---
 build.ab                                | 2 +-
 src/std/fs.ab                           | 2 +-
 src/tests/validity/command_inception.ab | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/build.ab b/build.ab
index b0a1889d..fea7d668 100644
--- a/build.ab
+++ b/build.ab
@@ -1,5 +1,5 @@
 // Check if such directory exists
-$test -f "Cargo.toml" > /dev/null $ failed {
+$ test -f "Cargo.toml" > /dev/null $ failed {
     echo "Please run this command in the project root directory"
     trust $ exit 1 $
 }
diff --git a/src/std/fs.ab b/src/std/fs.ab
index 162c6daa..056b5273 100644
--- a/src/std/fs.ab
+++ b/src/std/fs.ab
@@ -100,7 +100,7 @@ pub fun glob_multiple(paths: [Text]): [Text]? {
         }
         combined = join(items, " ")
     }
-    let files = $eval "for file in {combined}; do [ -e \\\"\\\$file\\\" ] && echo \\\"\\\$file\\\"; done"$?
+    let files = $ eval "for file in {combined}; do [ -e \\\"\\\$file\\\" ] && echo \\\"\\\$file\\\"; done" $?
     return split(files, "\n")
 }
 
diff --git a/src/tests/validity/command_inception.ab b/src/tests/validity/command_inception.ab
index 4639ef90..a2e741be 100644
--- a/src/tests/validity/command_inception.ab
+++ b/src/tests/validity/command_inception.ab
@@ -1,4 +1,4 @@
 // Output
 // Hello World
 
-$echo {$ echo {$ echo {$ echo Hello World $ failed {}} $ failed {}} $ failed {}} $ failed {}
+$ echo {$ echo {$ echo {$ echo Hello World $ failed {}} $ failed {}} $ failed {}} $ failed {}

From 9fafec6b9601f4d54922951101194e4b35d86c0a Mon Sep 17 00:00:00 2001
From: Huw Walters <huw.walters@gmail.com>
Date: Sat, 26 Oct 2024 09:18:57 +0100
Subject: [PATCH 5/6] Add whitespace to more Bash commands.

---
 src/tests/validity/command_inception.ab     | 2 +-
 src/tests/validity/command_interpolation.ab | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/tests/validity/command_inception.ab b/src/tests/validity/command_inception.ab
index a2e741be..31bf3936 100644
--- a/src/tests/validity/command_inception.ab
+++ b/src/tests/validity/command_inception.ab
@@ -1,4 +1,4 @@
 // Output
 // Hello World
 
-$ echo {$ echo {$ echo {$ echo Hello World $ failed {}} $ failed {}} $ failed {}} $ failed {}
+$ echo { $ echo { $ echo { $ echo Hello World $ failed { } } $ failed { } } $ failed { } } $ failed { }
diff --git a/src/tests/validity/command_interpolation.ab b/src/tests/validity/command_interpolation.ab
index 60e406df..2af258a5 100644
--- a/src/tests/validity/command_interpolation.ab
+++ b/src/tests/validity/command_interpolation.ab
@@ -1,4 +1,4 @@
 // Output
 // Hello World
 
-echo $ echo {$ echo Hello World $ failed {}} $ failed {}
+echo $ echo { $ echo Hello World $ failed { } } $ failed { }

From 30369e8e5107f7d3ba9ef16b42239330f1a86126 Mon Sep 17 00:00:00 2001
From: Huw Walters <huw.walters@gmail.com>
Date: Sat, 26 Oct 2024 09:21:21 +0100
Subject: [PATCH 6/6] Change "Succeded" to "Succeeded".

---
 src/tests/stdlib/glob_absolute_multiple_globs.ab | 2 +-
 src/tests/stdlib/glob_absolute_wild_char.ab      | 2 +-
 src/tests/stdlib/glob_absolute_wild_star.ab      | 2 +-
 src/tests/stdlib/glob_absolute_with_spaces.ab    | 2 +-
 src/tests/stdlib/glob_relative_multiple_globs.ab | 2 +-
 src/tests/stdlib/glob_relative_wild_char.ab      | 2 +-
 src/tests/stdlib/glob_relative_wild_star.ab      | 2 +-
 src/tests/stdlib/glob_relative_with_spaces.ab    | 2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/tests/stdlib/glob_absolute_multiple_globs.ab b/src/tests/stdlib/glob_absolute_multiple_globs.ab
index a489bdfd..eb829cb6 100644
--- a/src/tests/stdlib/glob_absolute_multiple_globs.ab
+++ b/src/tests/stdlib/glob_absolute_multiple_globs.ab
@@ -37,7 +37,7 @@ main {
         echo "FAILED"
     }
     if compare(actual, expected) {
-        echo "Succeded"
+        echo "Succeeded"
     } else {
         echo "Expected: {expected}"
         echo "Actual: {actual}"
diff --git a/src/tests/stdlib/glob_absolute_wild_char.ab b/src/tests/stdlib/glob_absolute_wild_char.ab
index 961750cd..76a500de 100644
--- a/src/tests/stdlib/glob_absolute_wild_char.ab
+++ b/src/tests/stdlib/glob_absolute_wild_char.ab
@@ -34,7 +34,7 @@ main {
         echo "FAILED"
     }
     if compare(actual, expected) {
-        echo "Succeded"
+        echo "Succeeded"
     } else {
         echo "Expected: {expected}"
         echo "Actual: {actual}"
diff --git a/src/tests/stdlib/glob_absolute_wild_star.ab b/src/tests/stdlib/glob_absolute_wild_star.ab
index a3d2648b..2b07b593 100644
--- a/src/tests/stdlib/glob_absolute_wild_star.ab
+++ b/src/tests/stdlib/glob_absolute_wild_star.ab
@@ -36,7 +36,7 @@ main {
         echo "FAILED"
     }
     if compare(actual, expected) {
-        echo "Succeded"
+        echo "Succeeded"
     } else {
         echo "Expected: {expected}"
         echo "Actual: {actual}"
diff --git a/src/tests/stdlib/glob_absolute_with_spaces.ab b/src/tests/stdlib/glob_absolute_with_spaces.ab
index 8258b58f..10d9a45b 100644
--- a/src/tests/stdlib/glob_absolute_with_spaces.ab
+++ b/src/tests/stdlib/glob_absolute_with_spaces.ab
@@ -34,7 +34,7 @@ main {
         echo "FAILED"
     }
     if compare(actual, expected) {
-        echo "Succeded"
+        echo "Succeeded"
     } else {
         echo "Expected: {expected}"
         echo "Actual: {actual}"
diff --git a/src/tests/stdlib/glob_relative_multiple_globs.ab b/src/tests/stdlib/glob_relative_multiple_globs.ab
index f0fca2e1..feaa2293 100644
--- a/src/tests/stdlib/glob_relative_multiple_globs.ab
+++ b/src/tests/stdlib/glob_relative_multiple_globs.ab
@@ -38,7 +38,7 @@ main {
         echo "FAILED"
     }
     if compare(actual, expected) {
-        echo "Succeded"
+        echo "Succeeded"
     } else {
         echo "Expected: {expected}"
         echo "Actual: {actual}"
diff --git a/src/tests/stdlib/glob_relative_wild_char.ab b/src/tests/stdlib/glob_relative_wild_char.ab
index d6e1017f..0095cf85 100644
--- a/src/tests/stdlib/glob_relative_wild_char.ab
+++ b/src/tests/stdlib/glob_relative_wild_char.ab
@@ -35,7 +35,7 @@ main {
         echo "FAILED"
     }
     if compare(actual, expected) {
-        echo "Succeded"
+        echo "Succeeded"
     } else {
         echo "Expected: {expected}"
         echo "Actual: {actual}"
diff --git a/src/tests/stdlib/glob_relative_wild_star.ab b/src/tests/stdlib/glob_relative_wild_star.ab
index d9961beb..1189af93 100644
--- a/src/tests/stdlib/glob_relative_wild_star.ab
+++ b/src/tests/stdlib/glob_relative_wild_star.ab
@@ -37,7 +37,7 @@ main {
         echo "FAILED"
     }
     if compare(actual, expected) {
-        echo "Succeded"
+        echo "Succeeded"
     } else {
         echo "Expected: {expected}"
         echo "Actual: {actual}"
diff --git a/src/tests/stdlib/glob_relative_with_spaces.ab b/src/tests/stdlib/glob_relative_with_spaces.ab
index f86587c6..73a32025 100644
--- a/src/tests/stdlib/glob_relative_with_spaces.ab
+++ b/src/tests/stdlib/glob_relative_with_spaces.ab
@@ -35,7 +35,7 @@ main {
         echo "FAILED"
     }
     if compare(actual, expected) {
-        echo "Succeded"
+        echo "Succeeded"
     } else {
         echo "Expected: {expected}"
         echo "Actual: {actual}"