open Sexplib.Std type merge_strategy = PreferLeft | PreferRight | RevertToAncestor [@@deriving sexp] type statement = | CreateBranch of { name: string; hash: string option [@sexp.option] } | Checkout of string | GetHead | GetBranchTip of string | UpdateBranchTip of { name: string; hash: string } | Merge of { left: string; right: string; strategy: merge_strategy } [@@deriving sexp]