Support for blocks and function pointers (better version of #28)