未定義の識別子から始まる構文をもし使うなら、頻度から考えて
メソッド定義の場合に限定するとかしないと、
class
interface
module
なんかの区別がうまくできない気がします。

ところでstructってやっぱり必要?