This is a consequence of the way that interfaces are defined in the Go
language.
If you want to get a view on a *Dense that is a *Dense, you do the
following:
v := d.View(i, k, j, l).(*Dense)
This is guaranteed to succeed for correct values of d, i, j, k and l.
Dan