I want to define a matrix wrapper type in order to store more information than just the content of the matrix itself:

```
immutable MatWrap{T<:Number,S<:AbstractMatrix} <: AbstractMatrix{T}
data::S
otherstuff
end
```

Is there a way to automatically inherit all of the matrix operations, including optimized ones (e.g. if the matrix is Hermitian), without redefining all the `A_mul_B`

and friends?

For example if I multiply `A*B=C`

, `C`

should be a `MatWrap`

object.

Thanks