class Button {
  abstract class Event
  class Click extends Event
}

val button1 = new Button
val button2 = new Button

val click1: button1.Click = new button1.Click
val click2: button2.Click = new button2.Click

// type error
val click3: button1.Click = click2
