parameterise syntax to allow ML code generation.