This code triggers a static assert called "Nonsensical finite range with slicing but no length" in std.range.take!string: string str = "abcdef"; string result = str.take(3); assert(array(result) == "abc"); It probably has something to do with strings which have no length defined to so they work with code units instead of code points.
Fixed SVN.
David, are you trying to fix all Phobos by yourself? Leave some work to the others, please ;-)