Implement ndt::substitute_shape , which substitutes shape into symbolic types