let destruct t f =     Deferred.bind t (function `Ok o -> f (`Ok o) | `Error e -> f (`Error e))