import std.algorithm; void main() { auto m = map!"a"([1,2,3]); auto x = move(m); } bails out with: C:\dmd2\windows\bin\..\..\src\phobos\std\algorithm.d(1400): Error: function std. algorithm.map!("a").map!(int[]).map is a nested function and cannot be accessed from move It also hits the following code: import std.range, std.algorithm; void main() { int[] arr = [ 1, 2, 3, 4]; auto s = assumeSorted(map!"a"(arr)); assert(equal(s.lowerBound(3),[1, 2])); } The problem is that move is called inside release() in SortedRange template. In my project I use sorted array of intervals [a,b] for codepoint sets, so for now I just ripped off that release() function in SortedRange. Still some cleaner soultion for this general problem of map is needed.
https://github.com/D-Programming-Language/phobos/pull/462