wrote AbstractSyntax.scala