let compare = function
  | Eq -> ( = )
  | Neq -> ( <> )
  | Lt -> ( < ) [@attr]
  | Le -> ( <= )
  | Gt -> ( > )
  | Ge -> ( >= )

let raise fmt =
  Fmt.kstr
    (fun error_message (result : _ result) ->
      match result with
      | Ok v -> v
      | Error `Oh_no -> invalid_arg error_message)
    fmt

let raise fmt =
  Fmt.kstr
    (fun error_message aaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbb ->
      invalid_arg error_message)
    fmt

let raise fmt =
  Fmt.kstr
    (fun error_message (result : _ result) ->
      match result with
      | Ok v -> v
      | Error `Oh_no -> invalid_arg error_message)
    fmt

let raise fmt =
  Fmt.kstr
    (fun error_message aaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbb ->
      invalid_arg error_message)
    fmt

let contrived =
  List.map
    ~f:(fun aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ->
      f aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
    l

let contrived =
  List.map l ~f:(fun aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ->
      f aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)

let x =
  match y with
  | Empty | Leaf _ -> assert false
  | Node
      ({left= lr_left; key= _; value= fooooooo; height= _; right= lr_right}
       as lr_node) ->
      left_node.right <- lr_left ;
      root_node.left <- lr_right ;
      lr_node.right <- tree
