:: Arg = L String | Lit Int
:: SSMProgram :== [Instr]
+
gen :: AST -> String
gen _ = toString [Label "Test"
,Instr "ldc" [Lit 1] "Eerste instructie"
,Instr "ldc" [Lit 2] "Tweede instructie"]
+//Scrap this, we'll need shared state when generating
+//i.e. to figure out the positions of vars relative to the
+//SP/MP/whatever or in which register they are
+//and to supply with fresh labels
class g a :: a -> SSMProgram
instance g Expr where