I would like to create a type (say, my_vector) that behaves exactly like a Vector, so that I can pass it to all the functions that take Vectors. In addition to that, I want to create special functions exclusively for my_vector, that do not work for generic Vectors.
So, for instance, if A is a Matrix and typeof(b) is my_vector, I want to be able to solve a linear system using A\b, to recover its length with length(b), or to access its elements with b[index].
At the same time, I want to define a specific function that can take objects of type my_vector as parameters, but that does not take objects of type Vector.
How can I do this?