anchor.diff:  handle_fdb_result({0, RetVal}) -> {ok, RetVal};
   handle_fdb_result(0) -> ok;
   handle_fdb_result({error, network_already_running}) -> ok;
  +handle_fdb_result({Err = {error, _},_Future}) -> Err;
   handle_fdb_result(Other) -> Other.
   
   future(F) -> future_get(F, none).
   
   future_get(F, FQuery) -> 
  -  maybe_fdb_do([
  -    fun() -> wait_non_blocking(F, fdb_nif:fdb_future_is_ready(F)) end,
  +  maybe_do([
  +    fun() -> {fdb_nif:fdb_future_is_ready(F),F} end,
  +    fun(Ready) -> wait_non_blocking(Ready) end,
       fun() -> fdb_nif:fdb_future_get_error(F) end,
       fun() -> get_future_property(F, FQuery) end
     ]).
  
positive.code: init_and_open(SoFile) ->
    init(SoFile),
    api_version(100),
    maybe_fdb_do([
      fun() -> open() end,
      fun(DB) -> DB end
    ]).
  
negative.code: -spec open() -> fdb_database().
  %% @end
  open() ->
    maybe_do([
    fun () -> fdb_nif:fdb_setup_network() end,
    fun () -> fdb_nif:fdb_run_network() end,
    fun () -> fdb_nif:fdb_create_cluster() end,
  