abstract class AbsCell { type T = Node val init: T private var value: T = init def get: T = value def set (x: T) { value = x } class Node { val foo = 1 } } object inner { def main(args: Array[String]) { val cell = new AbsCell { val init = new Node() } cell.set(new cell.type#T()) // nullpointer exception } }