@grain/stdlib 0.4.4 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/LICENSE +1 -1
  3. package/array.gr +92 -73
  4. package/array.md +18 -18
  5. package/bigint.gr +497 -0
  6. package/bigint.md +811 -0
  7. package/buffer.gr +56 -217
  8. package/buffer.md +24 -17
  9. package/bytes.gr +103 -205
  10. package/bytes.md +19 -0
  11. package/char.gr +152 -166
  12. package/char.md +200 -0
  13. package/exception.md +6 -0
  14. package/float32.gr +159 -82
  15. package/float32.md +315 -0
  16. package/float64.gr +163 -82
  17. package/float64.md +315 -0
  18. package/hash.gr +53 -49
  19. package/int32.gr +479 -230
  20. package/int32.md +937 -0
  21. package/int64.gr +479 -230
  22. package/int64.md +937 -0
  23. package/list.gr +530 -116
  24. package/list.md +1141 -0
  25. package/map.gr +302 -121
  26. package/map.md +525 -0
  27. package/number.gr +51 -57
  28. package/number.md +37 -3
  29. package/option.gr +25 -25
  30. package/option.md +1 -1
  31. package/package.json +3 -3
  32. package/pervasives.gr +504 -52
  33. package/pervasives.md +1116 -0
  34. package/queue.gr +8 -1
  35. package/queue.md +10 -0
  36. package/random.gr +196 -0
  37. package/random.md +179 -0
  38. package/range.gr +26 -26
  39. package/regex.gr +1833 -842
  40. package/regex.md +11 -11
  41. package/result.md +1 -1
  42. package/runtime/bigint.gr +2045 -0
  43. package/runtime/bigint.md +326 -0
  44. package/runtime/dataStructures.gr +99 -279
  45. package/runtime/dataStructures.md +391 -0
  46. package/runtime/debug.gr +0 -1
  47. package/runtime/debug.md +6 -0
  48. package/runtime/equal.gr +40 -37
  49. package/runtime/equal.md +6 -0
  50. package/runtime/exception.gr +28 -15
  51. package/runtime/exception.md +30 -0
  52. package/runtime/gc.gr +50 -20
  53. package/runtime/gc.md +36 -0
  54. package/runtime/malloc.gr +32 -22
  55. package/runtime/malloc.md +55 -0
  56. package/runtime/numberUtils.gr +297 -142
  57. package/runtime/numberUtils.md +54 -0
  58. package/runtime/numbers.gr +1204 -453
  59. package/runtime/numbers.md +300 -0
  60. package/runtime/string.gr +193 -228
  61. package/runtime/string.md +24 -0
  62. package/runtime/stringUtils.gr +62 -38
  63. package/runtime/stringUtils.md +6 -0
  64. package/runtime/unsafe/constants.gr +17 -0
  65. package/runtime/unsafe/constants.md +72 -0
  66. package/runtime/unsafe/conv.gr +10 -10
  67. package/runtime/unsafe/conv.md +71 -0
  68. package/runtime/unsafe/errors.md +204 -0
  69. package/runtime/unsafe/memory.gr +14 -3
  70. package/runtime/unsafe/memory.md +54 -0
  71. package/runtime/unsafe/printWasm.gr +4 -4
  72. package/runtime/unsafe/printWasm.md +24 -0
  73. package/runtime/unsafe/tags.gr +11 -10
  74. package/runtime/unsafe/tags.md +120 -0
  75. package/runtime/unsafe/wasmf32.gr +9 -2
  76. package/runtime/unsafe/wasmf32.md +168 -0
  77. package/runtime/unsafe/wasmf64.gr +9 -2
  78. package/runtime/unsafe/wasmf64.md +168 -0
  79. package/runtime/unsafe/wasmi32.gr +65 -47
  80. package/runtime/unsafe/wasmi32.md +282 -0
  81. package/runtime/unsafe/wasmi64.gr +78 -50
  82. package/runtime/unsafe/wasmi64.md +300 -0
  83. package/runtime/utils/printing.gr +62 -0
  84. package/runtime/utils/printing.md +18 -0
  85. package/runtime/wasi.gr +200 -46
  86. package/runtime/wasi.md +839 -0
  87. package/set.gr +125 -121
  88. package/set.md +24 -21
  89. package/stack.gr +29 -29
  90. package/stack.md +4 -6
  91. package/string.gr +434 -415
  92. package/string.md +3 -3
  93. package/sys/file.gr +477 -482
  94. package/sys/process.gr +33 -47
  95. package/sys/random.gr +48 -20
  96. package/sys/random.md +38 -0
  97. package/sys/time.gr +12 -28
@@ -5,7 +5,7 @@ import Memory from "runtime/unsafe/memory"
5
5
  // [FIXME] These all leak ATM (grain-lang/grain#791)
6
6
 
7
7
  @disableGC
8
- export let printI32 = (val) => {
8
+ export let printI32 = val => {
9
9
  Memory.incRef(WasmI32.fromGrain(print))
10
10
  Memory.incRef(WasmI32.fromGrain(toString))
11
11
  let conv = Conv.toInt32(val)
@@ -23,7 +23,7 @@ export let printI32 = (val) => {
23
23
  }
24
24
 
25
25
  @disableGC
26
- export let printI64 = (val) => {
26
+ export let printI64 = val => {
27
27
  Memory.incRef(WasmI32.fromGrain(print))
28
28
  Memory.incRef(WasmI32.fromGrain(toString))
29
29
  let conv = Conv.toInt64(val)
@@ -41,7 +41,7 @@ export let printI64 = (val) => {
41
41
  }
42
42
 
43
43
  @disableGC
44
- export let printF32 = (val) => {
44
+ export let printF32 = val => {
45
45
  Memory.incRef(WasmI32.fromGrain(print))
46
46
  Memory.incRef(WasmI32.fromGrain(toString))
47
47
  let conv = Conv.toFloat32(val)
@@ -59,7 +59,7 @@ export let printF32 = (val) => {
59
59
  }
60
60
 
61
61
  @disableGC
62
- export let printF64 = (val) => {
62
+ export let printF64 = val => {
63
63
  Memory.incRef(WasmI32.fromGrain(print))
64
64
  Memory.incRef(WasmI32.fromGrain(toString))
65
65
  let conv = Conv.toFloat64(val)
@@ -0,0 +1,24 @@
1
+ ### PrintWasm.**printI32**
2
+
3
+ ```grain
4
+ printI32 : WasmI32 -> Void
5
+ ```
6
+
7
+ ### PrintWasm.**printI64**
8
+
9
+ ```grain
10
+ printI64 : WasmI64 -> Void
11
+ ```
12
+
13
+ ### PrintWasm.**printF32**
14
+
15
+ ```grain
16
+ printF32 : WasmF32 -> Void
17
+ ```
18
+
19
+ ### PrintWasm.**printF64**
20
+
21
+ ```grain
22
+ printF64 : WasmF64 -> Void
23
+ ```
24
+
@@ -1,21 +1,21 @@
1
1
  /* grainc-flags --compilation-mode=runtime */
2
2
 
3
- export let _GRAIN_NUMBER_TAG_TYPE = 0b0001n
4
- export let _GRAIN_CONST_TAG_TYPE = 0b0110n
3
+ export let _GRAIN_NUMBER_TAG_TYPE = 0b0001n
4
+ export let _GRAIN_CHAR_TAG_TYPE = 0b0010n
5
+ export let _GRAIN_CONST_TAG_TYPE = 0b0110n
5
6
  export let _GRAIN_GENERIC_HEAP_TAG_TYPE = 0b0000n
6
7
 
7
8
  export let _GRAIN_NUMBER_TAG_MASK = 0b0001n
8
9
  export let _GRAIN_GENERIC_TAG_MASK = 0b0111n
9
10
 
10
11
  export let _GRAIN_STRING_HEAP_TAG = 1n
11
- export let _GRAIN_CHAR_HEAP_TAG = 2n
12
- export let _GRAIN_ADT_HEAP_TAG = 3n
13
- export let _GRAIN_RECORD_HEAP_TAG = 4n
14
- export let _GRAIN_ARRAY_HEAP_TAG = 5n
15
- export let _GRAIN_BOXED_NUM_HEAP_TAG = 6n
16
- export let _GRAIN_LAMBDA_HEAP_TAG = 7n
17
- export let _GRAIN_TUPLE_HEAP_TAG = 8n
18
- export let _GRAIN_BYTES_HEAP_TAG = 9n
12
+ export let _GRAIN_ADT_HEAP_TAG = 2n
13
+ export let _GRAIN_RECORD_HEAP_TAG = 3n
14
+ export let _GRAIN_ARRAY_HEAP_TAG = 4n
15
+ export let _GRAIN_BOXED_NUM_HEAP_TAG = 5n
16
+ export let _GRAIN_LAMBDA_HEAP_TAG = 6n
17
+ export let _GRAIN_TUPLE_HEAP_TAG = 7n
18
+ export let _GRAIN_BYTES_HEAP_TAG = 8n
19
19
 
20
20
  // Boxed number types
21
21
  export let _GRAIN_FLOAT32_BOXED_NUM_TAG = 1n
@@ -23,3 +23,4 @@ export let _GRAIN_FLOAT64_BOXED_NUM_TAG = 2n
23
23
  export let _GRAIN_INT32_BOXED_NUM_TAG = 3n
24
24
  export let _GRAIN_INT64_BOXED_NUM_TAG = 4n
25
25
  export let _GRAIN_RATIONAL_BOXED_NUM_TAG = 5n
26
+ export let _GRAIN_BIGINT_BOXED_NUM_TAG = 6n
@@ -0,0 +1,120 @@
1
+ ### Tags.**_GRAIN_NUMBER_TAG_TYPE**
2
+
3
+ ```grain
4
+ _GRAIN_NUMBER_TAG_TYPE : WasmI32
5
+ ```
6
+
7
+ ### Tags.**_GRAIN_CHAR_TAG_TYPE**
8
+
9
+ ```grain
10
+ _GRAIN_CHAR_TAG_TYPE : WasmI32
11
+ ```
12
+
13
+ ### Tags.**_GRAIN_CONST_TAG_TYPE**
14
+
15
+ ```grain
16
+ _GRAIN_CONST_TAG_TYPE : WasmI32
17
+ ```
18
+
19
+ ### Tags.**_GRAIN_GENERIC_HEAP_TAG_TYPE**
20
+
21
+ ```grain
22
+ _GRAIN_GENERIC_HEAP_TAG_TYPE : WasmI32
23
+ ```
24
+
25
+ ### Tags.**_GRAIN_NUMBER_TAG_MASK**
26
+
27
+ ```grain
28
+ _GRAIN_NUMBER_TAG_MASK : WasmI32
29
+ ```
30
+
31
+ ### Tags.**_GRAIN_GENERIC_TAG_MASK**
32
+
33
+ ```grain
34
+ _GRAIN_GENERIC_TAG_MASK : WasmI32
35
+ ```
36
+
37
+ ### Tags.**_GRAIN_STRING_HEAP_TAG**
38
+
39
+ ```grain
40
+ _GRAIN_STRING_HEAP_TAG : WasmI32
41
+ ```
42
+
43
+ ### Tags.**_GRAIN_ADT_HEAP_TAG**
44
+
45
+ ```grain
46
+ _GRAIN_ADT_HEAP_TAG : WasmI32
47
+ ```
48
+
49
+ ### Tags.**_GRAIN_RECORD_HEAP_TAG**
50
+
51
+ ```grain
52
+ _GRAIN_RECORD_HEAP_TAG : WasmI32
53
+ ```
54
+
55
+ ### Tags.**_GRAIN_ARRAY_HEAP_TAG**
56
+
57
+ ```grain
58
+ _GRAIN_ARRAY_HEAP_TAG : WasmI32
59
+ ```
60
+
61
+ ### Tags.**_GRAIN_BOXED_NUM_HEAP_TAG**
62
+
63
+ ```grain
64
+ _GRAIN_BOXED_NUM_HEAP_TAG : WasmI32
65
+ ```
66
+
67
+ ### Tags.**_GRAIN_LAMBDA_HEAP_TAG**
68
+
69
+ ```grain
70
+ _GRAIN_LAMBDA_HEAP_TAG : WasmI32
71
+ ```
72
+
73
+ ### Tags.**_GRAIN_TUPLE_HEAP_TAG**
74
+
75
+ ```grain
76
+ _GRAIN_TUPLE_HEAP_TAG : WasmI32
77
+ ```
78
+
79
+ ### Tags.**_GRAIN_BYTES_HEAP_TAG**
80
+
81
+ ```grain
82
+ _GRAIN_BYTES_HEAP_TAG : WasmI32
83
+ ```
84
+
85
+ ### Tags.**_GRAIN_FLOAT32_BOXED_NUM_TAG**
86
+
87
+ ```grain
88
+ _GRAIN_FLOAT32_BOXED_NUM_TAG : WasmI32
89
+ ```
90
+
91
+ ### Tags.**_GRAIN_FLOAT64_BOXED_NUM_TAG**
92
+
93
+ ```grain
94
+ _GRAIN_FLOAT64_BOXED_NUM_TAG : WasmI32
95
+ ```
96
+
97
+ ### Tags.**_GRAIN_INT32_BOXED_NUM_TAG**
98
+
99
+ ```grain
100
+ _GRAIN_INT32_BOXED_NUM_TAG : WasmI32
101
+ ```
102
+
103
+ ### Tags.**_GRAIN_INT64_BOXED_NUM_TAG**
104
+
105
+ ```grain
106
+ _GRAIN_INT64_BOXED_NUM_TAG : WasmI32
107
+ ```
108
+
109
+ ### Tags.**_GRAIN_RATIONAL_BOXED_NUM_TAG**
110
+
111
+ ```grain
112
+ _GRAIN_RATIONAL_BOXED_NUM_TAG : WasmI32
113
+ ```
114
+
115
+ ### Tags.**_GRAIN_BIGINT_BOXED_NUM_TAG**
116
+
117
+ ```grain
118
+ _GRAIN_BIGINT_BOXED_NUM_TAG : WasmI32
119
+ ```
120
+
@@ -2,7 +2,11 @@
2
2
 
3
3
  // WebAssembly Memory Instructions
4
4
  export primitive load: (WasmI32, WasmI32) -> WasmF32 = "@wasm.load_float32"
5
- export primitive store: (WasmI32, WasmF32, WasmI32) -> Void = "@wasm.store_float32"
5
+ export primitive store: (
6
+ WasmI32,
7
+ WasmF32,
8
+ WasmI32,
9
+ ) -> Void = "@wasm.store_float32"
6
10
 
7
11
  // WebAssembly Unary Instructions
8
12
  export primitive neg: WasmF32 -> WasmF32 = "@wasm.neg_float32"
@@ -18,7 +22,10 @@ export primitive add: (WasmF32, WasmF32) -> WasmF32 = "@wasm.add_float32"
18
22
  export primitive sub: (WasmF32, WasmF32) -> WasmF32 = "@wasm.sub_float32"
19
23
  export primitive mul: (WasmF32, WasmF32) -> WasmF32 = "@wasm.mul_float32"
20
24
  export primitive div: (WasmF32, WasmF32) -> WasmF32 = "@wasm.div_float32"
21
- export primitive copySign: (WasmF32, WasmF32) -> WasmF32 = "@wasm.copy_sign_float32"
25
+ export primitive copySign: (
26
+ WasmF32,
27
+ WasmF32,
28
+ ) -> WasmF32 = "@wasm.copy_sign_float32"
22
29
  export primitive min: (WasmF32, WasmF32) -> WasmF32 = "@wasm.min_float32"
23
30
  export primitive max: (WasmF32, WasmF32) -> WasmF32 = "@wasm.max_float32"
24
31
  export primitive eq: (WasmF32, WasmF32) -> Bool = "@wasm.eq_float32"
@@ -0,0 +1,168 @@
1
+ ### Wasmf32.**load**
2
+
3
+ ```grain
4
+ load : (WasmI32, WasmI32) -> WasmF32
5
+ ```
6
+
7
+ ### Wasmf32.**store**
8
+
9
+ ```grain
10
+ store : (WasmI32, WasmF32, WasmI32) -> Void
11
+ ```
12
+
13
+ ### Wasmf32.**neg**
14
+
15
+ ```grain
16
+ neg : WasmF32 -> WasmF32
17
+ ```
18
+
19
+ ### Wasmf32.**abs**
20
+
21
+ ```grain
22
+ abs : WasmF32 -> WasmF32
23
+ ```
24
+
25
+ ### Wasmf32.**ceil**
26
+
27
+ ```grain
28
+ ceil : WasmF32 -> WasmF32
29
+ ```
30
+
31
+ ### Wasmf32.**floor**
32
+
33
+ ```grain
34
+ floor : WasmF32 -> WasmF32
35
+ ```
36
+
37
+ ### Wasmf32.**trunc**
38
+
39
+ ```grain
40
+ trunc : WasmF32 -> WasmF32
41
+ ```
42
+
43
+ ### Wasmf32.**nearest**
44
+
45
+ ```grain
46
+ nearest : WasmF32 -> WasmF32
47
+ ```
48
+
49
+ ### Wasmf32.**sqrt**
50
+
51
+ ```grain
52
+ sqrt : WasmF32 -> WasmF32
53
+ ```
54
+
55
+ ### Wasmf32.**add**
56
+
57
+ ```grain
58
+ add : (WasmF32, WasmF32) -> WasmF32
59
+ ```
60
+
61
+ ### Wasmf32.**sub**
62
+
63
+ ```grain
64
+ sub : (WasmF32, WasmF32) -> WasmF32
65
+ ```
66
+
67
+ ### Wasmf32.**mul**
68
+
69
+ ```grain
70
+ mul : (WasmF32, WasmF32) -> WasmF32
71
+ ```
72
+
73
+ ### Wasmf32.**div**
74
+
75
+ ```grain
76
+ div : (WasmF32, WasmF32) -> WasmF32
77
+ ```
78
+
79
+ ### Wasmf32.**copySign**
80
+
81
+ ```grain
82
+ copySign : (WasmF32, WasmF32) -> WasmF32
83
+ ```
84
+
85
+ ### Wasmf32.**min**
86
+
87
+ ```grain
88
+ min : (WasmF32, WasmF32) -> WasmF32
89
+ ```
90
+
91
+ ### Wasmf32.**max**
92
+
93
+ ```grain
94
+ max : (WasmF32, WasmF32) -> WasmF32
95
+ ```
96
+
97
+ ### Wasmf32.**eq**
98
+
99
+ ```grain
100
+ eq : (WasmF32, WasmF32) -> Bool
101
+ ```
102
+
103
+ ### Wasmf32.**ne**
104
+
105
+ ```grain
106
+ ne : (WasmF32, WasmF32) -> Bool
107
+ ```
108
+
109
+ ### Wasmf32.**lt**
110
+
111
+ ```grain
112
+ lt : (WasmF32, WasmF32) -> Bool
113
+ ```
114
+
115
+ ### Wasmf32.**le**
116
+
117
+ ```grain
118
+ le : (WasmF32, WasmF32) -> Bool
119
+ ```
120
+
121
+ ### Wasmf32.**gt**
122
+
123
+ ```grain
124
+ gt : (WasmF32, WasmF32) -> Bool
125
+ ```
126
+
127
+ ### Wasmf32.**ge**
128
+
129
+ ```grain
130
+ ge : (WasmF32, WasmF32) -> Bool
131
+ ```
132
+
133
+ ### Wasmf32.**reinterpretI32**
134
+
135
+ ```grain
136
+ reinterpretI32 : WasmI32 -> WasmF32
137
+ ```
138
+
139
+ ### Wasmf32.**convertI32S**
140
+
141
+ ```grain
142
+ convertI32S : WasmI32 -> WasmF32
143
+ ```
144
+
145
+ ### Wasmf32.**convertI32U**
146
+
147
+ ```grain
148
+ convertI32U : WasmI32 -> WasmF32
149
+ ```
150
+
151
+ ### Wasmf32.**convertI64S**
152
+
153
+ ```grain
154
+ convertI64S : WasmI64 -> WasmF32
155
+ ```
156
+
157
+ ### Wasmf32.**convertI64U**
158
+
159
+ ```grain
160
+ convertI64U : WasmI64 -> WasmF32
161
+ ```
162
+
163
+ ### Wasmf32.**demoteF64**
164
+
165
+ ```grain
166
+ demoteF64 : WasmF64 -> WasmF32
167
+ ```
168
+
@@ -2,7 +2,11 @@
2
2
 
3
3
  // WebAssembly Memory Instructions
4
4
  export primitive load: (WasmI32, WasmI32) -> WasmF64 = "@wasm.load_float64"
5
- export primitive store: (WasmI32, WasmF64, WasmI32) -> Void = "@wasm.store_float64"
5
+ export primitive store: (
6
+ WasmI32,
7
+ WasmF64,
8
+ WasmI32,
9
+ ) -> Void = "@wasm.store_float64"
6
10
 
7
11
  // WebAssembly Unary Instructions
8
12
  export primitive neg: WasmF64 -> WasmF64 = "@wasm.neg_float64"
@@ -18,7 +22,10 @@ export primitive add: (WasmF64, WasmF64) -> WasmF64 = "@wasm.add_float64"
18
22
  export primitive sub: (WasmF64, WasmF64) -> WasmF64 = "@wasm.sub_float64"
19
23
  export primitive mul: (WasmF64, WasmF64) -> WasmF64 = "@wasm.mul_float64"
20
24
  export primitive div: (WasmF64, WasmF64) -> WasmF64 = "@wasm.div_float64"
21
- export primitive copySign: (WasmF64, WasmF64) -> WasmF64 = "@wasm.copy_sign_float64"
25
+ export primitive copySign: (
26
+ WasmF64,
27
+ WasmF64,
28
+ ) -> WasmF64 = "@wasm.copy_sign_float64"
22
29
  export primitive min: (WasmF64, WasmF64) -> WasmF64 = "@wasm.min_float64"
23
30
  export primitive max: (WasmF64, WasmF64) -> WasmF64 = "@wasm.max_float64"
24
31
  export primitive eq: (WasmF64, WasmF64) -> Bool = "@wasm.eq_float64"
@@ -0,0 +1,168 @@
1
+ ### Wasmf64.**load**
2
+
3
+ ```grain
4
+ load : (WasmI32, WasmI32) -> WasmF64
5
+ ```
6
+
7
+ ### Wasmf64.**store**
8
+
9
+ ```grain
10
+ store : (WasmI32, WasmF64, WasmI32) -> Void
11
+ ```
12
+
13
+ ### Wasmf64.**neg**
14
+
15
+ ```grain
16
+ neg : WasmF64 -> WasmF64
17
+ ```
18
+
19
+ ### Wasmf64.**abs**
20
+
21
+ ```grain
22
+ abs : WasmF64 -> WasmF64
23
+ ```
24
+
25
+ ### Wasmf64.**ceil**
26
+
27
+ ```grain
28
+ ceil : WasmF64 -> WasmF64
29
+ ```
30
+
31
+ ### Wasmf64.**floor**
32
+
33
+ ```grain
34
+ floor : WasmF64 -> WasmF64
35
+ ```
36
+
37
+ ### Wasmf64.**trunc**
38
+
39
+ ```grain
40
+ trunc : WasmF64 -> WasmF64
41
+ ```
42
+
43
+ ### Wasmf64.**nearest**
44
+
45
+ ```grain
46
+ nearest : WasmF64 -> WasmF64
47
+ ```
48
+
49
+ ### Wasmf64.**sqrt**
50
+
51
+ ```grain
52
+ sqrt : WasmF64 -> WasmF64
53
+ ```
54
+
55
+ ### Wasmf64.**add**
56
+
57
+ ```grain
58
+ add : (WasmF64, WasmF64) -> WasmF64
59
+ ```
60
+
61
+ ### Wasmf64.**sub**
62
+
63
+ ```grain
64
+ sub : (WasmF64, WasmF64) -> WasmF64
65
+ ```
66
+
67
+ ### Wasmf64.**mul**
68
+
69
+ ```grain
70
+ mul : (WasmF64, WasmF64) -> WasmF64
71
+ ```
72
+
73
+ ### Wasmf64.**div**
74
+
75
+ ```grain
76
+ div : (WasmF64, WasmF64) -> WasmF64
77
+ ```
78
+
79
+ ### Wasmf64.**copySign**
80
+
81
+ ```grain
82
+ copySign : (WasmF64, WasmF64) -> WasmF64
83
+ ```
84
+
85
+ ### Wasmf64.**min**
86
+
87
+ ```grain
88
+ min : (WasmF64, WasmF64) -> WasmF64
89
+ ```
90
+
91
+ ### Wasmf64.**max**
92
+
93
+ ```grain
94
+ max : (WasmF64, WasmF64) -> WasmF64
95
+ ```
96
+
97
+ ### Wasmf64.**eq**
98
+
99
+ ```grain
100
+ eq : (WasmF64, WasmF64) -> Bool
101
+ ```
102
+
103
+ ### Wasmf64.**ne**
104
+
105
+ ```grain
106
+ ne : (WasmF64, WasmF64) -> Bool
107
+ ```
108
+
109
+ ### Wasmf64.**lt**
110
+
111
+ ```grain
112
+ lt : (WasmF64, WasmF64) -> Bool
113
+ ```
114
+
115
+ ### Wasmf64.**le**
116
+
117
+ ```grain
118
+ le : (WasmF64, WasmF64) -> Bool
119
+ ```
120
+
121
+ ### Wasmf64.**gt**
122
+
123
+ ```grain
124
+ gt : (WasmF64, WasmF64) -> Bool
125
+ ```
126
+
127
+ ### Wasmf64.**ge**
128
+
129
+ ```grain
130
+ ge : (WasmF64, WasmF64) -> Bool
131
+ ```
132
+
133
+ ### Wasmf64.**reinterpretI64**
134
+
135
+ ```grain
136
+ reinterpretI64 : WasmI64 -> WasmF64
137
+ ```
138
+
139
+ ### Wasmf64.**convertI32S**
140
+
141
+ ```grain
142
+ convertI32S : WasmI32 -> WasmF64
143
+ ```
144
+
145
+ ### Wasmf64.**convertI32U**
146
+
147
+ ```grain
148
+ convertI32U : WasmI32 -> WasmF64
149
+ ```
150
+
151
+ ### Wasmf64.**convertI64S**
152
+
153
+ ```grain
154
+ convertI64S : WasmI64 -> WasmF64
155
+ ```
156
+
157
+ ### Wasmf64.**convertI64U**
158
+
159
+ ```grain
160
+ convertI64U : WasmI64 -> WasmF64
161
+ ```
162
+
163
+ ### Wasmf64.**promoteF32**
164
+
165
+ ```grain
166
+ promoteF32 : WasmF32 -> WasmF64
167
+ ```
168
+