However, all these solutions seem quite clunky to me. The decorators involve an unnecessary computational overhead and the implementation of icontract became quite tricky once we wanted to get the default values of the decorated function.
What do you think about the following solution as an extension to python compiler / interpreter?