The example code is quite simple to digest. The makeAngel name is funny. :p I wonder how this compares to other languages. Should the return values "Task!(run,TypeTuple!(F,Args))" and "Task!(run,TypeTuple!(F,Args))*" be exposed like that? I'd maybe vote for auto on this one, if possible. Although auto does hide what it returns..