https://issues.dlang.org/show_bug.cgi?id=15280 --- Comment #1 from Sobirari Muhomori <dfj1esp02 at sneakemail.com> --- One const method looks enough in your case: List tail() const { assert(root); auto n = root.next; return List(n); } --