O que é (double (^) (int)) foofoo
Há simum exemplo no cdecl aquilo vai(double (^)(int))foofoo
significalança foofoo no bloco (int) retornando o dobro.
O que significalançar foofoo em um "bloco" de int? O que faz o símbolo^
exatamente significa neste contexto. Geralmente é um XOR bit a bit.