abstract class Message[+A] trait InPort [+T <: Message[V], +V]