(* many refactorings can be done by spatch! used this code only as * last resort *) type refactoring_kind = | AddInterface of string option (* specific class *) * string (* the interface to add *) | RemoveInterface of string option * string | SplitMembers (* type related *) | AddReturnType of string | AddTypeHintParameter of string | OptionizeTypeParameter | AddTypeMember of string type position = { file: Common.filename; line: int; col: int; } type refactoring = refactoring_kind * position option val load: Common.filename -> refactoring list