Haskell has an alternative parens-and-braces syntax to the offside rule; that was meant particularly for machine-generated code if I remember correctly.
Edit: I meant to add: you need to decide whether ";" is terminates or joins statements if you have statements in the language.
Edit: I meant to add: you need to decide whether ";" is terminates or joins statements if you have statements in the language.