refactor(wpcarro/compiler): Modularize debug fns

Define `debug.ml` and `prettify.ml` to clean-up some code.

Change-Id: Iee2e1ed666f2ccb5e56cc50054ca85b8ba513f3b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7078
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
This commit is contained in:
William Carroll 2022-10-24 17:51:48 -04:00 committed by wpcarro
parent a8876a4cda
commit 1e9c3955bf
7 changed files with 91 additions and 85 deletions

View file

@ -7,6 +7,7 @@
******************************************************************************)
open Types
open Debug
(*******************************************************************************
* Library
@ -107,25 +108,25 @@ let rec unify (a : _type) (b : _type) : substitution option =
let* s1 = unify a c in
let* s2 = unify (substitute_type s1 b) (substitute_type s1 d) in
let s3 = compose_substitutions [s1; s2] in
s1 |> Types.debug_substitution |> Printf.sprintf "s1: %s\n" |> print_string;
s2 |> Types.debug_substitution |> Printf.sprintf "s2: %s\n" |> print_string;
s3 |> Types.debug_substitution |> Printf.sprintf "s3: %s\n" |> print_string;
s1 |> Debug.substitution |> Printf.sprintf "s1: %s\n" |> print_string;
s2 |> Debug.substitution |> Printf.sprintf "s2: %s\n" |> print_string;
s3 |> Debug.substitution |> Printf.sprintf "s3: %s\n" |> print_string;
Some s3
| _ -> None
let print_env (env : env) =
Printf.sprintf "env: %s\n" (Types.debug_env env)
Printf.sprintf "env: %s\n" (Debug.env env)
|> print_string
let print_val (x : value) =
Printf.sprintf "val: %s\n" (Types.debug_value x)
Printf.sprintf "val: %s\n" (Debug.value x)
|> print_string
let print_inference (x : inference option) =
match x with
| None -> "no inference\n" |> print_string
| Some x ->
Printf.sprintf "inf: %s\n" (Types.debug_inference x)
Printf.sprintf "inf: %s\n" (Debug.inference x)
|> print_string
let rec infer (env : env) (x : value) : inference option =