 
 # Async code is easier with fibers (light threads)!
 $fiber = require 'fibers'
+
+$Q = require 'q'
 
 #=====================================================================
 


module.exports = {
  $fiberize
  $sleep
  $synchronize
  $waitEvent

# TODO: should we keep it?
$promisify = (fn) ->
  (args...) ->
    deferred = $Q.defer()

    $fiber(=>
      try
