Using Value as per Shake instead of Dynamic, tks @ndmitchell

This allows class constraints to be placed on the stored value, giving
us Outputable etc