Source file fresh_name.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
open! Base
open Ppxlib
open Ast_builder.Default
type t =
{ loc : location
; unique_name : string
}
let create string ~loc = { loc; unique_name = gen_symbol ~prefix:string () }
let of_string_loc { loc; txt } = create txt ~loc
let to_string_loc { loc; unique_name } = { loc; txt = unique_name }
let expression { loc; unique_name } = evar unique_name ~loc
let pattern { loc; unique_name } = pvar unique_name ~loc