Update .gitignore for haskell binaries
Haskell Tokenizer for lexical parsing

Will split input source string on spaces, tabs,
line breaks, carriage returns, '(', ')', and end of files
Abstract Syntax Tree for Ints and Bools

AST Nodes are to parse into and evaluate from
Parse source string Ints or Bools to AST Nodes

Int literals are
    -100 .. -1, 0, 1, 100
Bool literals are
    true false
Runtime and Evaluation for Ints and Bools

Trivial Transformation placing underlying int struct
from AST.IntNode to Runtime.IntType and same for bools
Variable Binding with define keyword

Bind a variable and access with "(define a 3) a"
Branching with "if" keyword

Used as such:
    (if cond_expr then_expr else_expr)
For example:
    (if true 4 3)
returns 4
Include lambdas as anonymous function bodies

The following is a lambda that takes an int
and returns the square of it
    (lambda [x] (* x x))

The following is a function "sq" that has the same behaviour
    (define sq (lambda [x] (* x x)))

The following is the function "sq" in action, this will return 25
    (define sq (lambda [x] (* x x)))(sq 5)

The tokenizer now splits on '[' and ']'
Builtin operators for low level int and bool manipulation

Add takes any number of ints and returns their sum
    (+ 1 2 3 20) = 26
Subtract takes any number of ints and subtracts the last ones from the first
    (- 30 2 2) = 26
Multiply takes any number of ints and multiplies them all
    (* 13 2) = 26
Greater takes any number of ints and returns true if they are in descending order
    (> 26 13 0) true
Less takes any number of ints and ensures that they are in ascending order
    (< 26 52 105) = true
Equal takes any number of ints and ensures that they are all equal
    (= 25 26 27) = false
Or takes any number of bools and returns true of any are true
    (or true false false false) = true
And takes any number of bools and returns true of all are true
    (and true true true true false) = false
Include repl and file loader and example fresh file