let escape_backquote str =
  let f = function
    | ('a'..'z' | 'A'..'Z' | '0'..'9' | '_' as c) -> String.make 1 c
    | _ -> "_"
  in
  let str = String.replace_chars f str in
  let str = String.copy str in
  str.[0] <- Char.uppercase str.[0];
  str