This was existing behavior.

I think the reason behind it was so that it would play nicely with functions from `async` like `waterfall`, since `waterfall` expects you to call its callbacks with multiple result arguments if you want to pass multiple things through. E.g.:

```coffee
async.waterfall [
  (cb_wf) -> cb_wf null, 1, 2, 3
  (one, two, three, cb_wf) -> ...
], cb
```
becomes
```coffee 
async.waterfall [
  async.lift -> [1, 2, 3]
  (one, two, three, cb_wf) -> ...
], cb
```

But I agree that it is awkward if you actually want to return an array. Looking back at the initial implementation, it looks like `lift` was designed for functions that would return a tuple `[err, results...]` (https://github.com/Clever/async-ext/blob/69ba03e96d9f1fe5b00e922da1e0ba35b1d6dddd/async-ext.coffee#L5). Then it got changed (https://github.com/Clever/async-ext/commit/cfa285b95114d6119abaef0a79afff4fb8b9c09d) but it looks like the tests were updated without thinking about this case.

What do you think the ideal behavior would be?