Added then to if in order to make the grammar work a bit better. For
example. "if true x else y" would try to parse "true x" as the first two
parts of a binary function and then fail on the else part. Now it should
be "if true then x else y"