1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
open Catala_utils
open Ast
let format_primitive_typ (fmt : Format.formatter) (t : primitive_typ) : unit =
match t with
| Integer -> Format.pp_print_string fmt "integer"
| Decimal -> Format.pp_print_string fmt "decimal"
| Boolean -> Format.pp_print_string fmt "boolean"
| Money -> Format.pp_print_string fmt "money"
| Duration -> Format.pp_print_string fmt "duration"
| Date -> Format.pp_print_string fmt "date"
| Position -> Format.pp_print_string fmt "position"
| External s -> Format.pp_print_string fmt s
| Named (path, constructor) ->
Format.fprintf fmt "%a.%s"
(Format.pp_print_list
~pp_sep:(fun fmt () -> Format.pp_print_char fmt '.')
(fun fmt (uid, _pos) -> Format.pp_print_string fmt uid))
path (Mark.remove constructor)
| Var None -> Format.fprintf fmt "anything"
| Var (Some id) ->
Format.fprintf fmt "anything@ of@ type@ ";
Format.pp_print_string fmt (Mark.remove id)