メモです。 What Color is Your Function? – journal.stuffwithstuff.com async/awaitを実装した言語では、asyncな関数とそうでない関数が区別される つまり、async funcを受け取るメソッドにnormal funcを渡すことはできない(逆もしかり) そのために、.mapと.mapAsyncみたいに各APIにasync版と非async版が必要になる https://blog.yoshuawuyts.com/announcing-the-keyword-generics-initiative/ keyword genericsという案 なぜasyncな関数と普通の関数は互換性がないのか async funcはステートマシンにコンパイルされるから (いやまあ別にそういう決まりはないけど、JS/Rust/C#はいずれもそうして