blob: c1a65e287f4fa9cd473709fd2d7b9ac3bfed158a (
plain) (
tree)
|
|
// $Id$
object CI {
trait TreeDisplay {
type TreeNode <: ITreeNode;
trait ITreeNode {
def display(): unit;
}
}
trait TreeDisplayExp {
def getRoot(): TreeNode;
type TreeNode <: ITreeNodeExp;
trait ITreeNodeExp {}
}
trait TreeDisplayFinal extends TreeDisplay with TreeDisplayExp {
type TreeNode <: ITreeNode with ITreeNodeExp;
}
abstract class SimpleTreeDisplay extends TreeDisplay { self: TreeDisplayFinal =>
def display() = { this.getRoot().display(); }
}
}
|