|  |  |  | @ -13,12 +13,21 @@ type t = {dir: string; file: string; line: int; col: int} | 
			
		
	
		
			
				
					|  |  |  |  | let none = {dir= ""; file= ""; line= 0; col= 0} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | let mk ?(dir = none.dir) ?(file = none.file) ?(col = none.col) ~line = | 
			
		
	
		
			
				
					|  |  |  |  |   let dir = if String.is_empty dir then dir else Filename.realpath dir in | 
			
		
	
		
			
				
					|  |  |  |  |   {dir; file; line; col} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | let pp fs {dir; file; line; col} = | 
			
		
	
		
			
				
					|  |  |  |  |   Format.pp_print_string fs dir ; | 
			
		
	
		
			
				
					|  |  |  |  |   if not (String.is_empty dir) then | 
			
		
	
		
			
				
					|  |  |  |  |     Format.pp_print_string fs Filename.dir_sep ; | 
			
		
	
		
			
				
					|  |  |  |  | let root = ref (Filename.realpath (Sys.getcwd ())) | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | let pp fs ({dir; file; line; col} as loc) = | 
			
		
	
		
			
				
					|  |  |  |  |   if not (equal loc none) then Format.pp_print_string fs "; " ; | 
			
		
	
		
			
				
					|  |  |  |  |   if not (String.is_empty dir) then ( | 
			
		
	
		
			
				
					|  |  |  |  |     let dir = | 
			
		
	
		
			
				
					|  |  |  |  |       Option.value_map ~f:Fpath.to_string | 
			
		
	
		
			
				
					|  |  |  |  |         (Fpath.relativize ~root:(Fpath.v !root) (Fpath.v dir)) | 
			
		
	
		
			
				
					|  |  |  |  |         ~default:dir | 
			
		
	
		
			
				
					|  |  |  |  |     in | 
			
		
	
		
			
				
					|  |  |  |  |     Format.pp_print_string fs dir ; | 
			
		
	
		
			
				
					|  |  |  |  |     Format.pp_print_string fs Filename.dir_sep ) ; | 
			
		
	
		
			
				
					|  |  |  |  |   Format.pp_print_string fs file ; | 
			
		
	
		
			
				
					|  |  |  |  |   if not (String.is_empty file) then Format.pp_print_char fs ':' ; | 
			
		
	
		
			
				
					|  |  |  |  |   if line > 0 then ( | 
			
		
	
	
		
			
				
					|  |  |  | 
 |