sig
  type path = string
  type path_prefix = string
  type error_message = string
  val encode_prefix : Build_path_prefix_map.path_prefix -> string
  val decode_prefix :
    string ->
    (Build_path_prefix_map.path_prefix, Build_path_prefix_map.error_message)
    Stdlib.result
  type pair = {
    target : Build_path_prefix_map.path_prefix;
    source : Build_path_prefix_map.path_prefix;
  }
  val encode_pair : Build_path_prefix_map.pair -> string
  val decode_pair :
    string ->
    (Build_path_prefix_map.pair, Build_path_prefix_map.error_message)
    Stdlib.result
  type map = Build_path_prefix_map.pair option list
  val encode_map : Build_path_prefix_map.map -> string
  val decode_map :
    string ->
    (Build_path_prefix_map.map, Build_path_prefix_map.error_message)
    Stdlib.result
  val rewrite_first :
    Build_path_prefix_map.map ->
    Build_path_prefix_map.path -> Build_path_prefix_map.path option
  val rewrite_all :
    Build_path_prefix_map.map ->
    Build_path_prefix_map.path -> Build_path_prefix_map.path list
  val rewrite :
    Build_path_prefix_map.map ->
    Build_path_prefix_map.path -> Build_path_prefix_map.path
end