I’ve been working on a PureScript back-end targeting Bash, which I call PureShell. And I now have all stages working, so I can turn this
module Example.Literals where
foo :: String
= "Hello"
foo
bar :: String
= "There is no cheese ✓"
bar
baz :: String
= "$baz"
baz
:: String
α= "alpha"
α
foo' :: String
= "BOOM" foo'
into this
#!/bin/bash
set -o errexit -o nounset -o pipefail
function p206p177 {
echo alpha
}
function foop39 {
echo BOOM
}
function foo {
echo Hello
}
function baz {
echo $'$baz'
}
function bar {
echo $'There is no cheese \xE2\x9C\x93'
}
This is about all it can do for now though, since the first lowering stage is still very incomplete.