munge around with examples - separate into different dirs for ability
ensure builtin fx synths have the correct prefix
add docstring
Add new fn defonce for defining values only once:

defonce :foo do  # Define a new function called foo
  sleep 1        # Sleep for a second in the function definition
  puts \"hello\" # Print hello
  10             # Return a value of 10
end

# Call foo on its own
puts foo # The run sleeps for a second and prints \"hello\" before returning 10

# Try it again:
puts foo # This time the run doesn't sleep or print anything out. However,  10 is still returned.

defonce :foo do # Try redefining foo
  puts \"you can't redefine me\"
  15
end

puts foo # We still don't see any printing or sleeping, and the result is still 10

# You can use foo anywhere you would use normal code.
# For example, in a block:
3.times do
  play foo  # play 10!
end