The problem is, if you're using them for capabilities, it wouldn't just be an 'Await' effect: it would be an 'AwaitDatabase' effect and an 'AwaitFilesystem' effect and an 'AwaitNetwork' effect and an 'AwaitSubprocess' effect and....
And everything working with generic function objects would have to lug around all these effects, unless the language has a very solid 'effect polymorphism' story.
> unless the language has a very solid 'effect polymorphism' story.
That seems to be the premise, yeah. (See also the comment by the Ante author on polymorphism somewhere here in the thread.)
> The problem is, if you're using them for capabilities, it wouldn't just be an 'Await' effect: it would be an 'AwaitDatabase' effect and an 'AwaitFilesystem' effect and an 'AwaitNetwork' effect and an 'AwaitSubprocess' effect and....
I have to admit I will have to think about this a bit. It's already late over here and my brain is no longer working. :)
And everything working with generic function objects would have to lug around all these effects, unless the language has a very solid 'effect polymorphism' story.