Hi all I am trying to get a rough overview of how Async is implemented (or the idea behind it) before I really dig into its source code. I have the following questions: *Q1:* Is Async event-loop like? From the API and some docs for Async's usage, I feel it is quite like a event-loop. You create Deferred.t and it might be added to a queue and a scheduler behind might be adjusting the order of running for all Deferred.t in the queue. Am I correct? *Q2:* Deferred.return and Deferred.bind If I say Deferred.return 1 It will returns me a Deferred.t, but inside the function *return* or *bind* somehow an "event" is implicitly added to the default queue for scheduling, right? If I am correct above, *Q3:* Is Async depending on -thread? The queue or scheduler needs compiler support? I just need to understand the whole picture in a rough way first. Thanks Dan