* Add test case for a const being used inside an async proc
* Use `typeof` to get the type of the block instead of overloaded templates
This removes the problem with the symbol having different types
I am unsure why I didn't use this in the first place. IIRC I had problems with `typeof` when I first tried to use it in the original implementation