Provides a Functor instance for Dimensional.
Note that this instance is dubious, because it allows you to break the
dimensional abstraction. See dmap for more information.
Note that, while this instance overlaps with that given for
Dimensionless, it is confluent with that instance.
Note that this is an orphan instance.
A type f is a Functor if it provides a function fmap
which, given any types a and b lets you apply any
function from (a -> b) to turn an f a into an
f b, preserving the structure of f. Furthermore
f needs to adhere to the following: