If you change alist_iterator(pointer EP) : NodeIter(NodeTy::getNode(EP)) {} to alist_iterator(ValueT *EP) : NodeIter(NodeTy::getNode(EP)) {} It will compile fine. Not sure if this is definitely the right fix, though... -Argiris