skill-universe 1.1.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 (334) hide show
  1. package/README.md +24 -0
  2. package/bin/skillc.mjs +3 -0
  3. package/build/dev/javascript/argv/_gleam_artefacts/argv.cache +0 -0
  4. package/build/dev/javascript/argv/_gleam_artefacts/argv.cache_inline +0 -0
  5. package/build/dev/javascript/argv/_gleam_artefacts/argv.cache_meta +0 -0
  6. package/build/dev/javascript/argv/argv.erl +12 -0
  7. package/build/dev/javascript/argv/argv.mjs +31 -0
  8. package/build/dev/javascript/argv/argv_ffi.erl +27 -0
  9. package/build/dev/javascript/argv/argv_ffi.mjs +20 -0
  10. package/build/dev/javascript/argv/gleam.mjs +1 -0
  11. package/build/dev/javascript/filepath/_gleam_artefacts/filepath.cache +0 -0
  12. package/build/dev/javascript/filepath/_gleam_artefacts/filepath.cache_inline +0 -0
  13. package/build/dev/javascript/filepath/_gleam_artefacts/filepath.cache_meta +0 -0
  14. package/build/dev/javascript/filepath/filepath.erl +425 -0
  15. package/build/dev/javascript/filepath/filepath.mjs +529 -0
  16. package/build/dev/javascript/filepath/filepath_ffi.erl +9 -0
  17. package/build/dev/javascript/filepath/filepath_ffi.mjs +6 -0
  18. package/build/dev/javascript/filepath/gleam.mjs +1 -0
  19. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache +0 -0
  20. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_inline +0 -0
  21. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_meta +0 -0
  22. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache +0 -0
  23. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_inline +0 -0
  24. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_meta +0 -0
  25. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache +0 -0
  26. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache_inline +0 -0
  27. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache_meta +0 -0
  28. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache +0 -0
  29. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_inline +0 -0
  30. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_meta +0 -0
  31. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache +0 -0
  32. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_inline +0 -0
  33. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_meta +0 -0
  34. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache +0 -0
  35. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache_inline +0 -0
  36. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache_meta +0 -0
  37. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache +0 -0
  38. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache_inline +0 -0
  39. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache_meta +0 -0
  40. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache +0 -0
  41. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache_inline +0 -0
  42. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache_meta +0 -0
  43. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache +0 -0
  44. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache_inline +0 -0
  45. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache_meta +0 -0
  46. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache +0 -0
  47. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache_inline +0 -0
  48. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache_meta +0 -0
  49. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache +0 -0
  50. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache_inline +0 -0
  51. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache_meta +0 -0
  52. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache +0 -0
  53. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache_inline +0 -0
  54. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache_meta +0 -0
  55. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache +0 -0
  56. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache_inline +0 -0
  57. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache_meta +0 -0
  58. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache +0 -0
  59. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_inline +0 -0
  60. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_meta +0 -0
  61. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache +0 -0
  62. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache_inline +0 -0
  63. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache_meta +0 -0
  64. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache +0 -0
  65. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache_inline +0 -0
  66. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache_meta +0 -0
  67. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache +0 -0
  68. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache_inline +0 -0
  69. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache_meta +0 -0
  70. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache +0 -0
  71. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache_inline +0 -0
  72. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache_meta +0 -0
  73. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache +0 -0
  74. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_inline +0 -0
  75. package/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_meta +0 -0
  76. package/build/dev/javascript/gleam_stdlib/dict.mjs +710 -0
  77. package/build/dev/javascript/gleam_stdlib/gleam/bit_array.mjs +285 -0
  78. package/build/dev/javascript/gleam_stdlib/gleam/bool.mjs +313 -0
  79. package/build/dev/javascript/gleam_stdlib/gleam/bytes_tree.mjs +225 -0
  80. package/build/dev/javascript/gleam_stdlib/gleam/dict.mjs +456 -0
  81. package/build/dev/javascript/gleam_stdlib/gleam/dynamic/decode.mjs +985 -0
  82. package/build/dev/javascript/gleam_stdlib/gleam/dynamic.mjs +35 -0
  83. package/build/dev/javascript/gleam_stdlib/gleam/float.mjs +572 -0
  84. package/build/dev/javascript/gleam_stdlib/gleam/function.mjs +6 -0
  85. package/build/dev/javascript/gleam_stdlib/gleam/int.mjs +832 -0
  86. package/build/dev/javascript/gleam_stdlib/gleam/io.mjs +8 -0
  87. package/build/dev/javascript/gleam_stdlib/gleam/list.mjs +3160 -0
  88. package/build/dev/javascript/gleam_stdlib/gleam/option.mjs +418 -0
  89. package/build/dev/javascript/gleam_stdlib/gleam/order.mjs +178 -0
  90. package/build/dev/javascript/gleam_stdlib/gleam/pair.mjs +102 -0
  91. package/build/dev/javascript/gleam_stdlib/gleam/result.mjs +480 -0
  92. package/build/dev/javascript/gleam_stdlib/gleam/set.mjs +416 -0
  93. package/build/dev/javascript/gleam_stdlib/gleam/string.mjs +723 -0
  94. package/build/dev/javascript/gleam_stdlib/gleam/string_tree.mjs +133 -0
  95. package/build/dev/javascript/gleam_stdlib/gleam/uri.mjs +1155 -0
  96. package/build/dev/javascript/gleam_stdlib/gleam.mjs +1 -0
  97. package/build/dev/javascript/gleam_stdlib/gleam@bit_array.erl +347 -0
  98. package/build/dev/javascript/gleam_stdlib/gleam@bool.erl +352 -0
  99. package/build/dev/javascript/gleam_stdlib/gleam@bytes_tree.erl +211 -0
  100. package/build/dev/javascript/gleam_stdlib/gleam@dict.erl +521 -0
  101. package/build/dev/javascript/gleam_stdlib/gleam@dynamic.erl +106 -0
  102. package/build/dev/javascript/gleam_stdlib/gleam@dynamic@decode.erl +1112 -0
  103. package/build/dev/javascript/gleam_stdlib/gleam@float.erl +764 -0
  104. package/build/dev/javascript/gleam_stdlib/gleam@function.erl +18 -0
  105. package/build/dev/javascript/gleam_stdlib/gleam@int.erl +1004 -0
  106. package/build/dev/javascript/gleam_stdlib/gleam@io.erl +80 -0
  107. package/build/dev/javascript/gleam_stdlib/gleam@list.erl +2832 -0
  108. package/build/dev/javascript/gleam_stdlib/gleam@option.erl +413 -0
  109. package/build/dev/javascript/gleam_stdlib/gleam@order.erl +200 -0
  110. package/build/dev/javascript/gleam_stdlib/gleam@pair.erl +110 -0
  111. package/build/dev/javascript/gleam_stdlib/gleam@result.erl +532 -0
  112. package/build/dev/javascript/gleam_stdlib/gleam@set.erl +433 -0
  113. package/build/dev/javascript/gleam_stdlib/gleam@string.erl +1012 -0
  114. package/build/dev/javascript/gleam_stdlib/gleam@string_tree.erl +207 -0
  115. package/build/dev/javascript/gleam_stdlib/gleam@uri.erl +1049 -0
  116. package/build/dev/javascript/gleam_stdlib/gleam_stdlib.erl +529 -0
  117. package/build/dev/javascript/gleam_stdlib/gleam_stdlib.mjs +1050 -0
  118. package/build/dev/javascript/gleam_version +1 -0
  119. package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit.cache +0 -0
  120. package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit.cache_inline +0 -0
  121. package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit.cache_meta +0 -0
  122. package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit@internal@gleam_panic.cache +0 -0
  123. package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit@internal@gleam_panic.cache_inline +0 -0
  124. package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit@internal@gleam_panic.cache_meta +0 -0
  125. package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit@internal@reporting.cache +0 -0
  126. package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit@internal@reporting.cache_inline +0 -0
  127. package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit@internal@reporting.cache_meta +0 -0
  128. package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit@should.cache +0 -0
  129. package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit@should.cache_inline +0 -0
  130. package/build/dev/javascript/gleeunit/_gleam_artefacts/gleeunit@should.cache_meta +0 -0
  131. package/build/dev/javascript/gleeunit/gleam.mjs +1 -0
  132. package/build/dev/javascript/gleeunit/gleeunit/internal/gleam_panic.mjs +180 -0
  133. package/build/dev/javascript/gleeunit/gleeunit/internal/gleeunit_gleam_panic_ffi.erl +49 -0
  134. package/build/dev/javascript/gleeunit/gleeunit/internal/gleeunit_gleam_panic_ffi.mjs +91 -0
  135. package/build/dev/javascript/gleeunit/gleeunit/internal/reporting.mjs +256 -0
  136. package/build/dev/javascript/gleeunit/gleeunit/should.mjs +135 -0
  137. package/build/dev/javascript/gleeunit/gleeunit.erl +89 -0
  138. package/build/dev/javascript/gleeunit/gleeunit.mjs +62 -0
  139. package/build/dev/javascript/gleeunit/gleeunit@internal@gleam_panic.erl +56 -0
  140. package/build/dev/javascript/gleeunit/gleeunit@internal@reporting.erl +343 -0
  141. package/build/dev/javascript/gleeunit/gleeunit@should.erl +153 -0
  142. package/build/dev/javascript/gleeunit/gleeunit_ffi.erl +21 -0
  143. package/build/dev/javascript/gleeunit/gleeunit_ffi.mjs +100 -0
  144. package/build/dev/javascript/gleeunit/gleeunit_progress.erl +72 -0
  145. package/build/dev/javascript/prelude.mjs +1575 -0
  146. package/build/dev/javascript/simplifile/_gleam_artefacts/simplifile.cache +0 -0
  147. package/build/dev/javascript/simplifile/_gleam_artefacts/simplifile.cache_inline +0 -0
  148. package/build/dev/javascript/simplifile/_gleam_artefacts/simplifile.cache_meta +0 -0
  149. package/build/dev/javascript/simplifile/gleam.mjs +1 -0
  150. package/build/dev/javascript/simplifile/simplifile.erl +893 -0
  151. package/build/dev/javascript/simplifile/simplifile.mjs +893 -0
  152. package/build/dev/javascript/simplifile/simplifile_erl.erl +244 -0
  153. package/build/dev/javascript/simplifile/simplifile_js.mjs +400 -0
  154. package/build/dev/javascript/skillc/_gleam_artefacts/cli_test.cache +0 -0
  155. package/build/dev/javascript/skillc/_gleam_artefacts/cli_test.cache_inline +0 -0
  156. package/build/dev/javascript/skillc/_gleam_artefacts/cli_test.cache_meta +0 -0
  157. package/build/dev/javascript/skillc/_gleam_artefacts/cli_test.cache_warnings +0 -0
  158. package/build/dev/javascript/skillc/_gleam_artefacts/compiler_test.cache +0 -0
  159. package/build/dev/javascript/skillc/_gleam_artefacts/compiler_test.cache_inline +0 -0
  160. package/build/dev/javascript/skillc/_gleam_artefacts/compiler_test.cache_meta +0 -0
  161. package/build/dev/javascript/skillc/_gleam_artefacts/compiler_test.cache_warnings +0 -0
  162. package/build/dev/javascript/skillc/_gleam_artefacts/config_test.cache +0 -0
  163. package/build/dev/javascript/skillc/_gleam_artefacts/config_test.cache_inline +0 -0
  164. package/build/dev/javascript/skillc/_gleam_artefacts/config_test.cache_meta +0 -0
  165. package/build/dev/javascript/skillc/_gleam_artefacts/config_test.cache_warnings +0 -0
  166. package/build/dev/javascript/skillc/_gleam_artefacts/importer_test.cache +0 -0
  167. package/build/dev/javascript/skillc/_gleam_artefacts/importer_test.cache_inline +0 -0
  168. package/build/dev/javascript/skillc/_gleam_artefacts/importer_test.cache_meta +0 -0
  169. package/build/dev/javascript/skillc/_gleam_artefacts/importer_test.cache_warnings +0 -0
  170. package/build/dev/javascript/skillc/_gleam_artefacts/parser_test.cache +0 -0
  171. package/build/dev/javascript/skillc/_gleam_artefacts/parser_test.cache_inline +0 -0
  172. package/build/dev/javascript/skillc/_gleam_artefacts/parser_test.cache_meta +0 -0
  173. package/build/dev/javascript/skillc/_gleam_artefacts/parser_test.cache_warnings +0 -0
  174. package/build/dev/javascript/skillc/_gleam_artefacts/path_test.cache +0 -0
  175. package/build/dev/javascript/skillc/_gleam_artefacts/path_test.cache_inline +0 -0
  176. package/build/dev/javascript/skillc/_gleam_artefacts/path_test.cache_meta +0 -0
  177. package/build/dev/javascript/skillc/_gleam_artefacts/path_test.cache_warnings +0 -0
  178. package/build/dev/javascript/skillc/_gleam_artefacts/provider_test.cache +0 -0
  179. package/build/dev/javascript/skillc/_gleam_artefacts/provider_test.cache_inline +0 -0
  180. package/build/dev/javascript/skillc/_gleam_artefacts/provider_test.cache_meta +0 -0
  181. package/build/dev/javascript/skillc/_gleam_artefacts/provider_test.cache_warnings +0 -0
  182. package/build/dev/javascript/skillc/_gleam_artefacts/registry_test.cache +0 -0
  183. package/build/dev/javascript/skillc/_gleam_artefacts/registry_test.cache_inline +0 -0
  184. package/build/dev/javascript/skillc/_gleam_artefacts/registry_test.cache_meta +0 -0
  185. package/build/dev/javascript/skillc/_gleam_artefacts/registry_test.cache_warnings +0 -0
  186. package/build/dev/javascript/skillc/_gleam_artefacts/scaffold_test.cache +0 -0
  187. package/build/dev/javascript/skillc/_gleam_artefacts/scaffold_test.cache_inline +0 -0
  188. package/build/dev/javascript/skillc/_gleam_artefacts/scaffold_test.cache_meta +0 -0
  189. package/build/dev/javascript/skillc/_gleam_artefacts/scaffold_test.cache_warnings +0 -0
  190. package/build/dev/javascript/skillc/_gleam_artefacts/skillc.cache +0 -0
  191. package/build/dev/javascript/skillc/_gleam_artefacts/skillc.cache_inline +0 -0
  192. package/build/dev/javascript/skillc/_gleam_artefacts/skillc.cache_meta +0 -0
  193. package/build/dev/javascript/skillc/_gleam_artefacts/skillc.cache_warnings +0 -0
  194. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@compiler.cache +0 -0
  195. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@compiler.cache_inline +0 -0
  196. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@compiler.cache_meta +0 -0
  197. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@compiler.cache_warnings +0 -0
  198. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@config.cache +0 -0
  199. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@config.cache_inline +0 -0
  200. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@config.cache_meta +0 -0
  201. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@config.cache_warnings +0 -0
  202. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@error.cache +0 -0
  203. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@error.cache_inline +0 -0
  204. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@error.cache_meta +0 -0
  205. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@error.cache_warnings +0 -0
  206. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@fs.cache +0 -0
  207. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@fs.cache_inline +0 -0
  208. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@fs.cache_meta +0 -0
  209. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@fs.cache_warnings +0 -0
  210. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@importer.cache +0 -0
  211. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@importer.cache_inline +0 -0
  212. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@importer.cache_meta +0 -0
  213. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@importer.cache_warnings +0 -0
  214. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@parser.cache +0 -0
  215. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@parser.cache_inline +0 -0
  216. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@parser.cache_meta +0 -0
  217. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@parser.cache_warnings +0 -0
  218. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@path.cache +0 -0
  219. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@path.cache_inline +0 -0
  220. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@path.cache_meta +0 -0
  221. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@path.cache_warnings +0 -0
  222. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@platform.cache +0 -0
  223. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@platform.cache_inline +0 -0
  224. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@platform.cache_meta +0 -0
  225. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@platform.cache_warnings +0 -0
  226. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@provider.cache +0 -0
  227. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@provider.cache_inline +0 -0
  228. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@provider.cache_meta +0 -0
  229. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@provider.cache_warnings +0 -0
  230. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@registry.cache +0 -0
  231. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@registry.cache_inline +0 -0
  232. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@registry.cache_meta +0 -0
  233. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@registry.cache_warnings +0 -0
  234. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@scaffold.cache +0 -0
  235. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@scaffold.cache_inline +0 -0
  236. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@scaffold.cache_meta +0 -0
  237. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@scaffold.cache_warnings +0 -0
  238. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@semver.cache +0 -0
  239. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@semver.cache_inline +0 -0
  240. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@semver.cache_meta +0 -0
  241. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@semver.cache_warnings +0 -0
  242. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@shell.cache +0 -0
  243. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@shell.cache_inline +0 -0
  244. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@shell.cache_meta +0 -0
  245. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@shell.cache_warnings +0 -0
  246. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@template.cache +0 -0
  247. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@template.cache_inline +0 -0
  248. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@template.cache_meta +0 -0
  249. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@template.cache_warnings +0 -0
  250. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@types.cache +0 -0
  251. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@types.cache_inline +0 -0
  252. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@types.cache_meta +0 -0
  253. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@types.cache_warnings +0 -0
  254. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@version_constraint.cache +0 -0
  255. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@version_constraint.cache_inline +0 -0
  256. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@version_constraint.cache_meta +0 -0
  257. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@version_constraint.cache_warnings +0 -0
  258. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@yaml.cache +0 -0
  259. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@yaml.cache_inline +0 -0
  260. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@yaml.cache_meta +0 -0
  261. package/build/dev/javascript/skillc/_gleam_artefacts/skillc@yaml.cache_warnings +0 -0
  262. package/build/dev/javascript/skillc/_gleam_artefacts/skillc_test.cache +0 -0
  263. package/build/dev/javascript/skillc/_gleam_artefacts/skillc_test.cache_inline +0 -0
  264. package/build/dev/javascript/skillc/_gleam_artefacts/skillc_test.cache_meta +0 -0
  265. package/build/dev/javascript/skillc/_gleam_artefacts/skillc_test.cache_warnings +0 -0
  266. package/build/dev/javascript/skillc/_gleam_artefacts/template_test.cache +0 -0
  267. package/build/dev/javascript/skillc/_gleam_artefacts/template_test.cache_inline +0 -0
  268. package/build/dev/javascript/skillc/_gleam_artefacts/template_test.cache_meta +0 -0
  269. package/build/dev/javascript/skillc/_gleam_artefacts/template_test.cache_warnings +0 -0
  270. package/build/dev/javascript/skillc/_gleam_artefacts/version_constraint_test.cache +0 -0
  271. package/build/dev/javascript/skillc/_gleam_artefacts/version_constraint_test.cache_inline +0 -0
  272. package/build/dev/javascript/skillc/_gleam_artefacts/version_constraint_test.cache_meta +0 -0
  273. package/build/dev/javascript/skillc/_gleam_artefacts/version_constraint_test.cache_warnings +0 -0
  274. package/build/dev/javascript/skillc/cli_test.mjs +461 -0
  275. package/build/dev/javascript/skillc/compiler_test.mjs +3089 -0
  276. package/build/dev/javascript/skillc/config_test.mjs +308 -0
  277. package/build/dev/javascript/skillc/gleam.main.mjs +2 -0
  278. package/build/dev/javascript/skillc/gleam.mjs +1 -0
  279. package/build/dev/javascript/skillc/importer_test.mjs +1643 -0
  280. package/build/dev/javascript/skillc/parser_test.mjs +1601 -0
  281. package/build/dev/javascript/skillc/path_test.mjs +26 -0
  282. package/build/dev/javascript/skillc/provider_test.mjs +221 -0
  283. package/build/dev/javascript/skillc/registry_test.mjs +359 -0
  284. package/build/dev/javascript/skillc/scaffold_test.mjs +405 -0
  285. package/build/dev/javascript/skillc/skillc/compiler.mjs +724 -0
  286. package/build/dev/javascript/skillc/skillc/config.mjs +172 -0
  287. package/build/dev/javascript/skillc/skillc/error.mjs +145 -0
  288. package/build/dev/javascript/skillc/skillc/fs.mjs +40 -0
  289. package/build/dev/javascript/skillc/skillc/importer.mjs +975 -0
  290. package/build/dev/javascript/skillc/skillc/parser.mjs +427 -0
  291. package/build/dev/javascript/skillc/skillc/path.mjs +52 -0
  292. package/build/dev/javascript/skillc/skillc/platform.mjs +44 -0
  293. package/build/dev/javascript/skillc/skillc/provider.mjs +86 -0
  294. package/build/dev/javascript/skillc/skillc/registry.mjs +701 -0
  295. package/build/dev/javascript/skillc/skillc/scaffold.mjs +117 -0
  296. package/build/dev/javascript/skillc/skillc/semver.mjs +293 -0
  297. package/build/dev/javascript/skillc/skillc/shell.mjs +14 -0
  298. package/build/dev/javascript/skillc/skillc/template.mjs +1177 -0
  299. package/build/dev/javascript/skillc/skillc/types.mjs +249 -0
  300. package/build/dev/javascript/skillc/skillc/version_constraint.mjs +290 -0
  301. package/build/dev/javascript/skillc/skillc/yaml.mjs +51 -0
  302. package/build/dev/javascript/skillc/skillc.mjs +873 -0
  303. package/build/dev/javascript/skillc/skillc_ffi.mjs +30 -0
  304. package/build/dev/javascript/skillc/skillc_test.mjs +5 -0
  305. package/build/dev/javascript/skillc/template_test.mjs +1638 -0
  306. package/build/dev/javascript/skillc/version_constraint_test.mjs +1325 -0
  307. package/build/dev/javascript/yay/_gleam_artefacts/yay.cache +0 -0
  308. package/build/dev/javascript/yay/_gleam_artefacts/yay.cache_inline +0 -0
  309. package/build/dev/javascript/yay/_gleam_artefacts/yay.cache_meta +0 -0
  310. package/build/dev/javascript/yay/gleam.mjs +1 -0
  311. package/build/dev/javascript/yay/yaml_ffi.erl +106 -0
  312. package/build/dev/javascript/yay/yaml_ffi.mjs +373 -0
  313. package/build/dev/javascript/yay/yay.erl +1218 -0
  314. package/build/dev/javascript/yay/yay.mjs +1403 -0
  315. package/package.json +28 -0
  316. package/src/skillc/compiler.gleam +561 -0
  317. package/src/skillc/config.gleam +91 -0
  318. package/src/skillc/error.gleam +37 -0
  319. package/src/skillc/fs.gleam +31 -0
  320. package/src/skillc/importer.gleam +709 -0
  321. package/src/skillc/parser.gleam +279 -0
  322. package/src/skillc/path.gleam +30 -0
  323. package/src/skillc/platform.gleam +25 -0
  324. package/src/skillc/provider.gleam +58 -0
  325. package/src/skillc/registry.gleam +472 -0
  326. package/src/skillc/scaffold.gleam +112 -0
  327. package/src/skillc/semver.gleam +165 -0
  328. package/src/skillc/shell.gleam +12 -0
  329. package/src/skillc/template.gleam +885 -0
  330. package/src/skillc/types.gleam +93 -0
  331. package/src/skillc/version_constraint.gleam +163 -0
  332. package/src/skillc/yaml.gleam +27 -0
  333. package/src/skillc.gleam +466 -0
  334. package/src/skillc_ffi.mjs +30 -0
@@ -0,0 +1,764 @@
1
+ -module(gleam@float).
2
+ -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
3
+ -define(FILEPATH, "src/gleam/float.gleam").
4
+ -export([parse/1, to_string/1, compare/2, min/2, max/2, clamp/3, ceiling/1, floor/1, truncate/1, absolute_value/1, loosely_compare/3, loosely_equals/3, power/2, square_root/1, negate/1, round/1, to_precision/2, sum/1, product/1, random/0, modulo/2, divide/2, add/2, multiply/2, subtract/2, logarithm/1, exponential/1]).
5
+
6
+ -if(?OTP_RELEASE >= 27).
7
+ -define(MODULEDOC(Str), -moduledoc(Str)).
8
+ -define(DOC(Str), -doc(Str)).
9
+ -else.
10
+ -define(MODULEDOC(Str), -compile([])).
11
+ -define(DOC(Str), -compile([])).
12
+ -endif.
13
+
14
+ ?MODULEDOC(
15
+ " Functions for working with floats.\n"
16
+ "\n"
17
+ " ## Float representation\n"
18
+ "\n"
19
+ " Floats are represented as 64 bit floating point numbers on both the Erlang\n"
20
+ " and JavaScript runtimes. The floating point behaviour is native to their\n"
21
+ " respective runtimes, so their exact behaviour will be slightly different on\n"
22
+ " the two runtimes.\n"
23
+ "\n"
24
+ " ### Infinity and NaN\n"
25
+ "\n"
26
+ " Under the JavaScript runtime, exceeding the maximum (or minimum)\n"
27
+ " representable value for a floating point value will result in Infinity (or\n"
28
+ " -Infinity). Should you try to divide two infinities you will get NaN as a\n"
29
+ " result.\n"
30
+ "\n"
31
+ " When running on BEAM, exceeding the maximum (or minimum) representable\n"
32
+ " value for a floating point value will raise an error.\n"
33
+ "\n"
34
+ " ## Division by zero\n"
35
+ "\n"
36
+ " Gleam runs on the Erlang virtual machine, which does not follow the IEEE\n"
37
+ " 754 standard for floating point arithmetic and does not have an `Infinity`\n"
38
+ " value. In Erlang division by zero results in a crash, however Gleam does\n"
39
+ " not have partial functions and operators in core so instead division by zero\n"
40
+ " returns zero, a behaviour taken from Pony, Coq, and Lean.\n"
41
+ "\n"
42
+ " This may seem unexpected at first, but it is no less mathematically valid\n"
43
+ " than crashing or returning a special value. Division by zero is undefined\n"
44
+ " in mathematics.\n"
45
+ ).
46
+
47
+ -file("src/gleam/float.gleam", 51).
48
+ ?DOC(
49
+ " Attempts to parse a string as a `Float`, returning `Error(Nil)` if it was\n"
50
+ " not possible.\n"
51
+ "\n"
52
+ " ## Examples\n"
53
+ "\n"
54
+ " ```gleam\n"
55
+ " parse(\"2.3\")\n"
56
+ " // -> Ok(2.3)\n"
57
+ " ```\n"
58
+ "\n"
59
+ " ```gleam\n"
60
+ " parse(\"ABC\")\n"
61
+ " // -> Error(Nil)\n"
62
+ " ```\n"
63
+ ).
64
+ -spec parse(binary()) -> {ok, float()} | {error, nil}.
65
+ parse(String) ->
66
+ gleam_stdlib:parse_float(String).
67
+
68
+ -file("src/gleam/float.gleam", 64).
69
+ ?DOC(
70
+ " Returns the string representation of the provided `Float`.\n"
71
+ "\n"
72
+ " ## Examples\n"
73
+ "\n"
74
+ " ```gleam\n"
75
+ " to_string(2.3)\n"
76
+ " // -> \"2.3\"\n"
77
+ " ```\n"
78
+ ).
79
+ -spec to_string(float()) -> binary().
80
+ to_string(X) ->
81
+ gleam_stdlib:float_to_string(X).
82
+
83
+ -file("src/gleam/float.gleam", 106).
84
+ ?DOC(
85
+ " Compares two `Float`s, returning an `Order`:\n"
86
+ " `Lt` for lower than, `Eq` for equals, or `Gt` for greater than.\n"
87
+ "\n"
88
+ " ## Examples\n"
89
+ "\n"
90
+ " ```gleam\n"
91
+ " compare(2.0, 2.3)\n"
92
+ " // -> Lt\n"
93
+ " ```\n"
94
+ "\n"
95
+ " To handle\n"
96
+ " [Floating Point Imprecision](https://en.wikipedia.org/wiki/Floating-point_arithmetic#Accuracy_problems)\n"
97
+ " you may use [`loosely_compare`](#loosely_compare) instead.\n"
98
+ ).
99
+ -spec compare(float(), float()) -> gleam@order:order().
100
+ compare(A, B) ->
101
+ case A =:= B of
102
+ true ->
103
+ eq;
104
+
105
+ false ->
106
+ case A < B of
107
+ true ->
108
+ lt;
109
+
110
+ false ->
111
+ gt
112
+ end
113
+ end.
114
+
115
+ -file("src/gleam/float.gleam", 187).
116
+ ?DOC(
117
+ " Compares two `Float`s, returning the smaller of the two.\n"
118
+ "\n"
119
+ " ## Examples\n"
120
+ "\n"
121
+ " ```gleam\n"
122
+ " min(2.0, 2.3)\n"
123
+ " // -> 2.0\n"
124
+ " ```\n"
125
+ ).
126
+ -spec min(float(), float()) -> float().
127
+ min(A, B) ->
128
+ case A < B of
129
+ true ->
130
+ A;
131
+
132
+ false ->
133
+ B
134
+ end.
135
+
136
+ -file("src/gleam/float.gleam", 203).
137
+ ?DOC(
138
+ " Compares two `Float`s, returning the larger of the two.\n"
139
+ "\n"
140
+ " ## Examples\n"
141
+ "\n"
142
+ " ```gleam\n"
143
+ " max(2.0, 2.3)\n"
144
+ " // -> 2.3\n"
145
+ " ```\n"
146
+ ).
147
+ -spec max(float(), float()) -> float().
148
+ max(A, B) ->
149
+ case A > B of
150
+ true ->
151
+ A;
152
+
153
+ false ->
154
+ B
155
+ end.
156
+
157
+ -file("src/gleam/float.gleam", 85).
158
+ ?DOC(
159
+ " Restricts a float between two bounds.\n"
160
+ "\n"
161
+ " Note: If the `min` argument is larger than the `max` argument then they\n"
162
+ " will be swapped, so the minimum bound is always lower than the maximum\n"
163
+ " bound.\n"
164
+ "\n"
165
+ "\n"
166
+ " ## Examples\n"
167
+ "\n"
168
+ " ```gleam\n"
169
+ " clamp(1.2, min: 1.4, max: 1.6)\n"
170
+ " // -> 1.4\n"
171
+ " ```\n"
172
+ "\n"
173
+ " ```gleam\n"
174
+ " clamp(1.2, min: 1.4, max: 0.6)\n"
175
+ " // -> 1.2\n"
176
+ " ```\n"
177
+ ).
178
+ -spec clamp(float(), float(), float()) -> float().
179
+ clamp(X, Min_bound, Max_bound) ->
180
+ case Min_bound >= Max_bound of
181
+ true ->
182
+ _pipe = X,
183
+ _pipe@1 = min(_pipe, Min_bound),
184
+ max(_pipe@1, Max_bound);
185
+
186
+ false ->
187
+ _pipe@2 = X,
188
+ _pipe@3 = min(_pipe@2, Max_bound),
189
+ max(_pipe@3, Min_bound)
190
+ end.
191
+
192
+ -file("src/gleam/float.gleam", 221).
193
+ ?DOC(
194
+ " Rounds the value to the next highest whole number as a `Float`.\n"
195
+ "\n"
196
+ " ## Examples\n"
197
+ "\n"
198
+ " ```gleam\n"
199
+ " ceiling(2.3)\n"
200
+ " // -> 3.0\n"
201
+ " ```\n"
202
+ ).
203
+ -spec ceiling(float()) -> float().
204
+ ceiling(X) ->
205
+ math:ceil(X).
206
+
207
+ -file("src/gleam/float.gleam", 234).
208
+ ?DOC(
209
+ " Rounds the value to the next lowest whole number as a `Float`.\n"
210
+ "\n"
211
+ " ## Examples\n"
212
+ "\n"
213
+ " ```gleam\n"
214
+ " floor(2.3)\n"
215
+ " // -> 2.0\n"
216
+ " ```\n"
217
+ ).
218
+ -spec floor(float()) -> float().
219
+ floor(X) ->
220
+ math:floor(X).
221
+
222
+ -file("src/gleam/float.gleam", 272).
223
+ ?DOC(
224
+ " Returns the value as an `Int`, truncating all decimal digits.\n"
225
+ "\n"
226
+ " ## Examples\n"
227
+ "\n"
228
+ " ```gleam\n"
229
+ " truncate(2.4343434847383438)\n"
230
+ " // -> 2\n"
231
+ " ```\n"
232
+ ).
233
+ -spec truncate(float()) -> integer().
234
+ truncate(X) ->
235
+ erlang:trunc(X).
236
+
237
+ -file("src/gleam/float.gleam", 322).
238
+ ?DOC(
239
+ " Returns the absolute value of the input as a `Float`.\n"
240
+ "\n"
241
+ " ## Examples\n"
242
+ "\n"
243
+ " ```gleam\n"
244
+ " absolute_value(-12.5)\n"
245
+ " // -> 12.5\n"
246
+ " ```\n"
247
+ "\n"
248
+ " ```gleam\n"
249
+ " absolute_value(10.2)\n"
250
+ " // -> 10.2\n"
251
+ " ```\n"
252
+ ).
253
+ -spec absolute_value(float()) -> float().
254
+ absolute_value(X) ->
255
+ case X >= +0.0 of
256
+ true ->
257
+ X;
258
+
259
+ false ->
260
+ +0.0 - X
261
+ end.
262
+
263
+ -file("src/gleam/float.gleam", 136).
264
+ ?DOC(
265
+ " Compares two `Float`s within a tolerance, returning an `Order`:\n"
266
+ " `Lt` for lower than, `Eq` for equals, or `Gt` for greater than.\n"
267
+ "\n"
268
+ " This function allows Float comparison while handling\n"
269
+ " [Floating Point Imprecision](https://en.wikipedia.org/wiki/Floating-point_arithmetic#Accuracy_problems).\n"
270
+ "\n"
271
+ " Notice: For `Float`s the tolerance won't be exact:\n"
272
+ " `5.3 - 5.0` is not exactly `0.3`.\n"
273
+ "\n"
274
+ " ## Examples\n"
275
+ "\n"
276
+ " ```gleam\n"
277
+ " loosely_compare(5.0, with: 5.3, tolerating: 0.5)\n"
278
+ " // -> Eq\n"
279
+ " ```\n"
280
+ "\n"
281
+ " If you want to check only for equality you may use\n"
282
+ " [`loosely_equals`](#loosely_equals) instead.\n"
283
+ ).
284
+ -spec loosely_compare(float(), float(), float()) -> gleam@order:order().
285
+ loosely_compare(A, B, Tolerance) ->
286
+ Difference = absolute_value(A - B),
287
+ case Difference =< Tolerance of
288
+ true ->
289
+ eq;
290
+
291
+ false ->
292
+ compare(A, B)
293
+ end.
294
+
295
+ -file("src/gleam/float.gleam", 169).
296
+ ?DOC(
297
+ " Checks for equality of two `Float`s within a tolerance,\n"
298
+ " returning a `Bool`.\n"
299
+ "\n"
300
+ " This function allows Float comparison while handling\n"
301
+ " [Floating Point Imprecision](https://en.wikipedia.org/wiki/Floating-point_arithmetic#Accuracy_problems).\n"
302
+ "\n"
303
+ " Notice: For `Float`s the tolerance won't be exact:\n"
304
+ " `5.3 - 5.0` is not exactly `0.3`.\n"
305
+ "\n"
306
+ " ## Examples\n"
307
+ "\n"
308
+ " ```gleam\n"
309
+ " loosely_equals(5.0, with: 5.3, tolerating: 0.5)\n"
310
+ " // -> True\n"
311
+ " ```\n"
312
+ "\n"
313
+ " ```gleam\n"
314
+ " loosely_equals(5.0, with: 5.1, tolerating: 0.1)\n"
315
+ " // -> False\n"
316
+ " ```\n"
317
+ ).
318
+ -spec loosely_equals(float(), float(), float()) -> boolean().
319
+ loosely_equals(A, B, Tolerance) ->
320
+ Difference = absolute_value(A - B),
321
+ Difference =< Tolerance.
322
+
323
+ -file("src/gleam/float.gleam", 359).
324
+ ?DOC(
325
+ " Returns the result of the base being raised to the power of the\n"
326
+ " exponent, as a `Float`.\n"
327
+ "\n"
328
+ " ## Examples\n"
329
+ "\n"
330
+ " ```gleam\n"
331
+ " power(2.0, -1.0)\n"
332
+ " // -> Ok(0.5)\n"
333
+ " ```\n"
334
+ "\n"
335
+ " ```gleam\n"
336
+ " power(2.0, 2.0)\n"
337
+ " // -> Ok(4.0)\n"
338
+ " ```\n"
339
+ "\n"
340
+ " ```gleam\n"
341
+ " power(8.0, 1.5)\n"
342
+ " // -> Ok(22.627416997969522)\n"
343
+ " ```\n"
344
+ "\n"
345
+ " ```gleam\n"
346
+ " 4.0 |> power(of: 2.0)\n"
347
+ " // -> Ok(16.0)\n"
348
+ " ```\n"
349
+ "\n"
350
+ " ```gleam\n"
351
+ " power(-1.0, 0.5)\n"
352
+ " // -> Error(Nil)\n"
353
+ " ```\n"
354
+ ).
355
+ -spec power(float(), float()) -> {ok, float()} | {error, nil}.
356
+ power(Base, Exponent) ->
357
+ Fractional = (math:ceil(Exponent) - Exponent) > +0.0,
358
+ case ((Base < +0.0) andalso Fractional) orelse ((Base =:= +0.0) andalso (Exponent
359
+ < +0.0)) of
360
+ true ->
361
+ {error, nil};
362
+
363
+ false ->
364
+ {ok, math:pow(Base, Exponent)}
365
+ end.
366
+
367
+ -file("src/gleam/float.gleam", 391).
368
+ ?DOC(
369
+ " Returns the square root of the input as a `Float`.\n"
370
+ "\n"
371
+ " ## Examples\n"
372
+ "\n"
373
+ " ```gleam\n"
374
+ " square_root(4.0)\n"
375
+ " // -> Ok(2.0)\n"
376
+ " ```\n"
377
+ "\n"
378
+ " ```gleam\n"
379
+ " square_root(-16.0)\n"
380
+ " // -> Error(Nil)\n"
381
+ " ```\n"
382
+ ).
383
+ -spec square_root(float()) -> {ok, float()} | {error, nil}.
384
+ square_root(X) ->
385
+ power(X, 0.5).
386
+
387
+ -file("src/gleam/float.gleam", 404).
388
+ ?DOC(
389
+ " Returns the negative of the value provided.\n"
390
+ "\n"
391
+ " ## Examples\n"
392
+ "\n"
393
+ " ```gleam\n"
394
+ " negate(1.0)\n"
395
+ " // -> -1.0\n"
396
+ " ```\n"
397
+ ).
398
+ -spec negate(float()) -> float().
399
+ negate(X) ->
400
+ -1.0 * X.
401
+
402
+ -file("src/gleam/float.gleam", 251).
403
+ ?DOC(
404
+ " Rounds the value to the nearest whole number as an `Int`.\n"
405
+ "\n"
406
+ " ## Examples\n"
407
+ "\n"
408
+ " ```gleam\n"
409
+ " round(2.3)\n"
410
+ " // -> 2\n"
411
+ " ```\n"
412
+ "\n"
413
+ " ```gleam\n"
414
+ " round(2.5)\n"
415
+ " // -> 3\n"
416
+ " ```\n"
417
+ ).
418
+ -spec round(float()) -> integer().
419
+ round(X) ->
420
+ erlang:round(X).
421
+
422
+ -file("src/gleam/float.gleam", 291).
423
+ ?DOC(
424
+ " Converts the value to a given precision as a `Float`.\n"
425
+ " The precision is the number of allowed decimal places.\n"
426
+ " Negative precisions are allowed and force rounding\n"
427
+ " to the nearest tenth, hundredth, thousandth etc.\n"
428
+ "\n"
429
+ " ## Examples\n"
430
+ "\n"
431
+ " ```gleam\n"
432
+ " to_precision(2.43434348473, 2)\n"
433
+ " // -> 2.43\n"
434
+ " ```\n"
435
+ "\n"
436
+ " ```gleam\n"
437
+ " to_precision(547890.453444, -3)\n"
438
+ " // -> 548000.0\n"
439
+ " ```\n"
440
+ ).
441
+ -spec to_precision(float(), integer()) -> float().
442
+ to_precision(X, Precision) ->
443
+ case Precision =< 0 of
444
+ true ->
445
+ Factor = math:pow(10.0, erlang:float(- Precision)),
446
+ erlang:float(erlang:round(case Factor of
447
+ +0.0 -> +0.0;
448
+ -0.0 -> -0.0;
449
+ Gleam@denominator -> X / Gleam@denominator
450
+ end)) * Factor;
451
+
452
+ false ->
453
+ Factor@1 = math:pow(10.0, erlang:float(Precision)),
454
+ case Factor@1 of
455
+ +0.0 -> +0.0;
456
+ -0.0 -> -0.0;
457
+ Gleam@denominator@1 -> erlang:float(erlang:round(X * Factor@1))
458
+ / Gleam@denominator@1
459
+ end
460
+ end.
461
+
462
+ -file("src/gleam/float.gleam", 421).
463
+ -spec sum_loop(list(float()), float()) -> float().
464
+ sum_loop(Numbers, Initial) ->
465
+ case Numbers of
466
+ [First | Rest] ->
467
+ sum_loop(Rest, First + Initial);
468
+
469
+ [] ->
470
+ Initial
471
+ end.
472
+
473
+ -file("src/gleam/float.gleam", 417).
474
+ ?DOC(
475
+ " Sums a list of `Float`s.\n"
476
+ "\n"
477
+ " ## Example\n"
478
+ "\n"
479
+ " ```gleam\n"
480
+ " sum([1.0, 2.2, 3.3])\n"
481
+ " // -> 6.5\n"
482
+ " ```\n"
483
+ ).
484
+ -spec sum(list(float())) -> float().
485
+ sum(Numbers) ->
486
+ sum_loop(Numbers, +0.0).
487
+
488
+ -file("src/gleam/float.gleam", 441).
489
+ -spec product_loop(list(float()), float()) -> float().
490
+ product_loop(Numbers, Initial) ->
491
+ case Numbers of
492
+ [First | Rest] ->
493
+ product_loop(Rest, First * Initial);
494
+
495
+ [] ->
496
+ Initial
497
+ end.
498
+
499
+ -file("src/gleam/float.gleam", 437).
500
+ ?DOC(
501
+ " Multiplies a list of `Float`s and returns the product.\n"
502
+ "\n"
503
+ " ## Example\n"
504
+ "\n"
505
+ " ```gleam\n"
506
+ " product([2.5, 3.2, 4.2])\n"
507
+ " // -> 33.6\n"
508
+ " ```\n"
509
+ ).
510
+ -spec product(list(float())) -> float().
511
+ product(Numbers) ->
512
+ product_loop(Numbers, 1.0).
513
+
514
+ -file("src/gleam/float.gleam", 463).
515
+ ?DOC(
516
+ " Generates a random float between the given zero (inclusive) and one\n"
517
+ " (exclusive).\n"
518
+ "\n"
519
+ " On Erlang this updates the random state in the process dictionary.\n"
520
+ " See: <https://www.erlang.org/doc/man/rand.html#uniform-0>\n"
521
+ "\n"
522
+ " ## Examples\n"
523
+ "\n"
524
+ " ```gleam\n"
525
+ " random()\n"
526
+ " // -> 0.646355926896028\n"
527
+ " ```\n"
528
+ ).
529
+ -spec random() -> float().
530
+ random() ->
531
+ rand:uniform().
532
+
533
+ -file("src/gleam/float.gleam", 494).
534
+ ?DOC(
535
+ " Computes the modulo of a float division of inputs as a `Result`.\n"
536
+ "\n"
537
+ " Returns division of the inputs as a `Result`: If the given divisor equals\n"
538
+ " `0`, this function returns an `Error`.\n"
539
+ "\n"
540
+ " The computed value will always have the same sign as the `divisor`.\n"
541
+ "\n"
542
+ " ## Examples\n"
543
+ "\n"
544
+ " ```gleam\n"
545
+ " modulo(13.3, by: 3.3)\n"
546
+ " // -> Ok(0.1)\n"
547
+ " ```\n"
548
+ "\n"
549
+ " ```gleam\n"
550
+ " modulo(-13.3, by: 3.3)\n"
551
+ " // -> Ok(3.2)\n"
552
+ " ```\n"
553
+ "\n"
554
+ " ```gleam\n"
555
+ " modulo(13.3, by: -3.3)\n"
556
+ " // -> Ok(-3.2)\n"
557
+ " ```\n"
558
+ "\n"
559
+ " ```gleam\n"
560
+ " modulo(-13.3, by: -3.3)\n"
561
+ " // -> Ok(-0.1)\n"
562
+ " ```\n"
563
+ ).
564
+ -spec modulo(float(), float()) -> {ok, float()} | {error, nil}.
565
+ modulo(Dividend, Divisor) ->
566
+ case Divisor of
567
+ +0.0 ->
568
+ {error, nil};
569
+
570
+ _ ->
571
+ {ok, Dividend - (math:floor(case Divisor of
572
+ +0.0 -> +0.0;
573
+ -0.0 -> -0.0;
574
+ Gleam@denominator -> Dividend / Gleam@denominator
575
+ end) * Divisor)}
576
+ end.
577
+
578
+ -file("src/gleam/float.gleam", 515).
579
+ ?DOC(
580
+ " Returns division of the inputs as a `Result`.\n"
581
+ "\n"
582
+ " ## Examples\n"
583
+ "\n"
584
+ " ```gleam\n"
585
+ " divide(0.0, 1.0)\n"
586
+ " // -> Ok(0.0)\n"
587
+ " ```\n"
588
+ "\n"
589
+ " ```gleam\n"
590
+ " divide(1.0, 0.0)\n"
591
+ " // -> Error(Nil)\n"
592
+ " ```\n"
593
+ ).
594
+ -spec divide(float(), float()) -> {ok, float()} | {error, nil}.
595
+ divide(A, B) ->
596
+ case B of
597
+ +0.0 ->
598
+ {error, nil};
599
+
600
+ B@1 ->
601
+ {ok, case B@1 of
602
+ +0.0 -> +0.0;
603
+ -0.0 -> -0.0;
604
+ Gleam@denominator -> A / Gleam@denominator
605
+ end}
606
+ end.
607
+
608
+ -file("src/gleam/float.gleam", 546).
609
+ ?DOC(
610
+ " Adds two floats together.\n"
611
+ "\n"
612
+ " It's the function equivalent of the `+.` operator.\n"
613
+ " This function is useful in higher order functions or pipes.\n"
614
+ "\n"
615
+ " ## Examples\n"
616
+ "\n"
617
+ " ```gleam\n"
618
+ " add(1.0, 2.0)\n"
619
+ " // -> 3.0\n"
620
+ " ```\n"
621
+ "\n"
622
+ " ```gleam\n"
623
+ " import gleam/list\n"
624
+ "\n"
625
+ " list.fold([1.0, 2.0, 3.0], 0.0, add)\n"
626
+ " // -> 6.0\n"
627
+ " ```\n"
628
+ "\n"
629
+ " ```gleam\n"
630
+ " 3.0 |> add(2.0)\n"
631
+ " // -> 5.0\n"
632
+ " ```\n"
633
+ ).
634
+ -spec add(float(), float()) -> float().
635
+ add(A, B) ->
636
+ A + B.
637
+
638
+ -file("src/gleam/float.gleam", 574).
639
+ ?DOC(
640
+ " Multiplies two floats together.\n"
641
+ "\n"
642
+ " It's the function equivalent of the `*.` operator.\n"
643
+ " This function is useful in higher order functions or pipes.\n"
644
+ "\n"
645
+ " ## Examples\n"
646
+ "\n"
647
+ " ```gleam\n"
648
+ " multiply(2.0, 4.0)\n"
649
+ " // -> 8.0\n"
650
+ " ```\n"
651
+ "\n"
652
+ " ```gleam\n"
653
+ " import gleam/list\n"
654
+ "\n"
655
+ " list.fold([2.0, 3.0, 4.0], 1.0, multiply)\n"
656
+ " // -> 24.0\n"
657
+ " ```\n"
658
+ "\n"
659
+ " ```gleam\n"
660
+ " 3.0 |> multiply(2.0)\n"
661
+ " // -> 6.0\n"
662
+ " ```\n"
663
+ ).
664
+ -spec multiply(float(), float()) -> float().
665
+ multiply(A, B) ->
666
+ A * B.
667
+
668
+ -file("src/gleam/float.gleam", 607).
669
+ ?DOC(
670
+ " Subtracts one float from another.\n"
671
+ "\n"
672
+ " It's the function equivalent of the `-.` operator.\n"
673
+ " This function is useful in higher order functions or pipes.\n"
674
+ "\n"
675
+ " ## Examples\n"
676
+ "\n"
677
+ " ```gleam\n"
678
+ " subtract(3.0, 1.0)\n"
679
+ " // -> 2.0\n"
680
+ " ```\n"
681
+ "\n"
682
+ " ```gleam\n"
683
+ " import gleam/list\n"
684
+ "\n"
685
+ " list.fold([1.0, 2.0, 3.0], 10.0, subtract)\n"
686
+ " // -> 4.0\n"
687
+ " ```\n"
688
+ "\n"
689
+ " ```gleam\n"
690
+ " 3.0 |> subtract(_, 2.0)\n"
691
+ " // -> 1.0\n"
692
+ " ```\n"
693
+ "\n"
694
+ " ```gleam\n"
695
+ " 3.0 |> subtract(2.0, _)\n"
696
+ " // -> -1.0\n"
697
+ " ```\n"
698
+ ).
699
+ -spec subtract(float(), float()) -> float().
700
+ subtract(A, B) ->
701
+ A - B.
702
+
703
+ -file("src/gleam/float.gleam", 636).
704
+ ?DOC(
705
+ " Returns the natural logarithm (base e) of the given `Float` as a `Result`. If the\n"
706
+ " input is less than or equal to 0, returns `Error(Nil)`.\n"
707
+ "\n"
708
+ " ## Examples\n"
709
+ "\n"
710
+ " ```gleam\n"
711
+ " logarithm(1.0)\n"
712
+ " // -> Ok(0.0)\n"
713
+ " ```\n"
714
+ "\n"
715
+ " ```gleam\n"
716
+ " logarithm(2.718281828459045) // e\n"
717
+ " // -> Ok(1.0)\n"
718
+ " ```\n"
719
+ "\n"
720
+ " ```gleam\n"
721
+ " logarithm(0.0)\n"
722
+ " // -> Error(Nil)\n"
723
+ " ```\n"
724
+ "\n"
725
+ " ```gleam\n"
726
+ " logarithm(-1.0)\n"
727
+ " // -> Error(Nil)\n"
728
+ " ```\n"
729
+ ).
730
+ -spec logarithm(float()) -> {ok, float()} | {error, nil}.
731
+ logarithm(X) ->
732
+ case X =< +0.0 of
733
+ true ->
734
+ {error, nil};
735
+
736
+ false ->
737
+ {ok, math:log(X)}
738
+ end.
739
+
740
+ -file("src/gleam/float.gleam", 674).
741
+ ?DOC(
742
+ " Returns e (Euler's number) raised to the power of the given exponent, as\n"
743
+ " a `Float`.\n"
744
+ "\n"
745
+ " ## Examples\n"
746
+ "\n"
747
+ " ```gleam\n"
748
+ " exponential(0.0)\n"
749
+ " // -> Ok(1.0)\n"
750
+ " ```\n"
751
+ "\n"
752
+ " ```gleam\n"
753
+ " exponential(1.0)\n"
754
+ " // -> Ok(2.718281828459045)\n"
755
+ " ```\n"
756
+ "\n"
757
+ " ```gleam\n"
758
+ " exponential(-1.0)\n"
759
+ " // -> Ok(0.36787944117144233)\n"
760
+ " ```\n"
761
+ ).
762
+ -spec exponential(float()) -> float().
763
+ exponential(X) ->
764
+ math:exp(X).