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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
open Ast
let register env =
(*
--# Generic NA
--#
--# Represents a missing value of generic type.
--#
--# @name na
--# @return :: NA
--# @family base
--# @seealso is_na
--# @export
*)
let env = Env.add "na"
(make_builtin ~name:"na" 0 (fun _args _env -> (VNA NAGeneric)))
env in
(*
--# Boolean NA
--#
--# Represents a missing boolean value.
--#
--# @name na_bool
--# @return :: NA
--# @family base
--# @seealso na
--# @export
*)
let env = Env.add "na_bool"
(make_builtin ~name:"na_bool" 0 (fun _args _env -> VNA NABool))
env in
(*
--# Integer NA
--#
--# Represents a missing integer value.
--#
--# @name na_int
--# @return :: NA
--# @family base
--# @seealso na
--# @export
*)
let env = Env.add "na_int"
(make_builtin ~name:"na_int" 0 (fun _args _env -> VNA NAInt))
env in
(*
--# Float NA
--#
--# Represents a missing float value.
--#
--# @name na_float
--# @return :: NA
--# @family base
--# @seealso na
--# @export
*)
let env = Env.add "na_float"
(make_builtin ~name:"na_float" 0 (fun _args _env -> VNA NAFloat))
env in
(*
--# String NA
--#
--# Represents a missing string value.
--#
--# @name na_string
--# @return :: NA
--# @family base
--# @seealso na
--# @export
*)
let env = Env.add "na_string"
(make_builtin ~name:"na_string" 0 (fun _args _env -> VNA NAString))
env in
env