Tagging blocking methods

The suggested setup

  • there are two related fn-s: async and not
  • presumably with different names
  • there is context tied to lexical scope at caller site: are we inside async fn/block or not?
  • we'd like compiler to aid in selecting the right fn
    • the aid can be as weak as a warning when a wrong fn is used
    • or as strong as selecting the right one to call (somehow)

seems also applicable to floating-point fast-math. Indeed

  • there can be two/three/four versions of sum or sqrt function
  • there can be local context at call site: do I prefer loose math or reproducible math
  • it'd be nice for compiler to aid in selecting the right version of sum or sqrt to call