The questions all the title. Just to clarify, Haskell already has the ability to parametise a type over another type (this is just like template programming in c++), but can it parametise a type over values - this is a dependent type. So for example you can have a type thats parametised over the integers, for example vectors of size n, matrices of size n x m, etc.
If not, why not. And is there any possibility that it will be supported in the future?