В чем разница между чертами Scala и классом типов Haskell и C ++ 0x Concepts?
Как и в этом примере ниже, где Observer объявляет абстрактные члены..
package observer
trait Subject {
type Observer = { def receiveUpdate(subject: Any) }
private var observers = List[Observer]()
def addObserver(observer:Observer) = observers ::= observer
def notifyObservers = observers foreach (_.receiveUpdate(this))
}