'Decorate the implementation of implicit conversion between
*fromty* and *toty*.
The decorated implementation will have the signature
(context, builder, fromty, toty, val).'

def lower_cast(self, fromty, toty):

    def decorate(impl):
        self.casts.append((impl, (fromty, toty)))
        return impl
    return decorate
