tried to fix casting by adding a self type to rvs

it didn't really work? but at least the type returned
from mutate is more than variable[T] now (instead it
will be gaussian, if a gaussian rv mutates).