A simple lisp
Example:
```
(defunc fib-recurse (n)
(var a 0) (var b 1) (var f 1)
(defunc calc-fib (i)
(if (<= i n)
(do
(set f (+ a b))
(set a b)
(set b f)
(calc-fib (+ i 1)))
f))
(calc-fib 2))
(defunc fib-while (n)
(var a 0) (var b 1) (var f 1)
(var i 2)
(while (<= i n)
(set f (+ a b))
(set a b)
(set b f)
(set i (+ i 1))
f))
(= (fib-recurse 10) (fib-while 10) 55)
```
parseProgram : Process.Options -> String -> Result Common.Error Process.Program
Parse a string into a program
parseProgramToJson : Process.Options -> String -> Json.Encode.Value
Parse a string into a Json representation of a program
parseExpression : Process.Options -> String -> Result Common.Error (List Process.ExprNode)
Parse a string into an expression
parseExpressionToJson : Process.Options -> String -> Json.Encode.Value
Parse a string into a Json representation of an expression
parseReplExpression : Process.Options -> String -> Result Common.Error (List Process.ReplExpression)
Parse a string into an expression intended for a REPL
parseReplExpressionToJson : Process.Options -> String -> Json.Encode.Value
Parse a string into a Json representation of an expression intended for a REPL