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