This is nice, I think it could be a bit better by chaining the make function recursively instead of creating the temporary shape array.

Would be great to have a test of it in test_fixed_dim.cpp.