When a MultiDim vector is converted to its internal representation, type information is lost.
becomes
The number of dimensions is converted into a runtime property and the information is lost at the type level.
Among other things, this makes it impossible to write a good Arbitrary instance that will generate only arrays with the correct number of dimensions.
Can we make the internal representation an explicit (new)type instead of the pair and encode the dimensions so that the number of dimensions is still available in the type.
cc @josefs
When a MultiDim vector is converted to its internal representation, type information is lost.
becomes
The number of dimensions is converted into a runtime property and the information is lost at the type level.
Among other things, this makes it impossible to write a good
Arbitraryinstance that will generate only arrays with the correct number of dimensions.Can we make the internal representation an explicit (new)type instead of the pair and encode the dimensions so that the number of dimensions is still available in the type.
cc @josefs