-record(ref, {handle, type :: atom(), target :: binary() | oid()}). -record(repo, {handle}). -record(odb, {handle}). -record(revwalk, {handle}). -record(oid, {oid}). -record(object, {type :: atom(), handle}). -record(index_entry, {mode, id :: oid(), path :: iolist()}). -type ref() :: #ref{}. -type repo() :: #repo{}. -type revwalk() :: #revwalk{}. -type odb() :: #odb{}. -type oid() :: #oid{}. -type object() :: #object{}. -type index_entry() :: #index_entry{}.