The Branch type represents a different aspect of the reference, like strings and byte slices. We should probably have `type Branch Reference` so the user can decide whether they want to treat it as a reference or a branch.