multiple template specialized types

I have a templated sparse matrix class:

Code:

`template <index_t, scalar> sparse;`

and a templated matrix array class:

Code:

`template <index_t, scalar, matrix_t> sparse_array`

How do I create another matrix array type, specializing only the matrix type, matrix_t? Something like this:

Code:

`template<index_t, scalar>`

typedef sparse_array<index_t, scalar, sparse<index_t, scalar>> sparse arr;

only I know this doesn't work (I tried it), but you get the basic idea, I hope...