type  = impl : Future<Output = Result<Self, Error>>;