let pp_lit = function
    | Int(i)    -> Printf.sprintf "Int(%d)" i
    | Float(f)  -> Printf.sprintf "Float(%f)" f
    | String(s) -> Printf.sprintf "String(%s)" s
    | Bool(b)   -> Printf.sprintf "Bool(%B)" b