Scala traits Haskell type classとC++0x Conceptsの違いは何ですか?
以下の例のように、オブザーバーが抽象メンバー receiveUpdate を宣言する場合、オブザーバーは実際には「匿名」型または構造型です。
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))
}