type Task = Task<Arc<Handle>>;
A task handle
struct Task { raw: RawTask, _p: PhantomData<Arc<Handle>>, }
raw: RawTask
_p: PhantomData<Arc<Handle>>