Provides functions like async, but consumes and produces promises.