---- But record wildcards are not at fault
------------------------------------------

do_step4 :: (Numerical num) => num -> Box a -> Box a
do_step4 number Box{func = f, obj = x} = Box{ obj = f number x, func = f }
do_step4 :: (Numerical num) => num -> Box a -> Box a
do_step4 number Box{func = f, obj = x} = Box{ obj = f number x, func = f }
do_step4 number Box{func = f, obj = x} = Box{ obj = f number x, func = f }