Johann MacDonagh: > I'm confused, what am I doing wrong here? I think that Phobos needs way more&better unittests. I think the error you receive reduces to this: import std.range: isForwardRange; void foo(R)(R r) if (isForwardRange!R) {} void main() { immutable arr = [1, 2]; foo(arr); } Bye, bearophile