include List

let exists_assoc pred =
List.exists @@ function x, _ -> pred x

let last =
List.rev %> List.hd

let last_opt x =
try Some (x |> List.rev |> List.hd)
with _ -> None