Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
71c2897
refactor: switch to React Router
jderochervlk Sep 28, 2025
3d46e64
refactor: add order and section to language manual frontmatter
jderochervlk Sep 28, 2025
365d522
Merge branch 'vlk/add-order-and-section-to-manual' of github.com:resc…
jderochervlk Sep 28, 2025
24c9fdc
add react
jderochervlk Sep 28, 2025
bce0ea1
Merge branch 'vlk/add-order-and-section-to-manual' of github.com:resc…
jderochervlk Sep 28, 2025
b3e42b7
improve css loading speed
jderochervlk Sep 28, 2025
62a4916
fix fouc
jderochervlk Sep 28, 2025
2a54652
fix css not loading
jderochervlk Sep 28, 2025
100fb4c
make sure progress is synced
jderochervlk Oct 1, 2025
3b5acdb
language manual
jderochervlk Oct 2, 2025
1217a60
working on tables
jderochervlk Oct 2, 2025
4d28ff6
back out table changes for now
jderochervlk Oct 2, 2025
a39d058
updating blog pages
jderochervlk Oct 3, 2025
06987bb
builds are working
jderochervlk Oct 3, 2025
5282ad2
copy to out folder
jderochervlk Oct 3, 2025
50c193e
add static server
jderochervlk Oct 3, 2025
b0c3673
cleanup some deps
jderochervlk Oct 5, 2025
d167bf2
cleanup some todo comments
jderochervlk Oct 5, 2025
f571352
configure loadmdx
jderochervlk Oct 5, 2025
8c812c6
tables looking good
jderochervlk Oct 5, 2025
96d9032
more mdx work
jderochervlk Oct 5, 2025
4732229
Merge branch 'master' of github.com:rescript-lang/rescript-lang.org i…
jderochervlk Oct 5, 2025
565e2d2
move react docs
jderochervlk Oct 7, 2025
009596d
react docs and anchor scrolling
jderochervlk Oct 7, 2025
c23be9b
fixed scrolling on full page nav
jderochervlk Oct 7, 2025
5a5904f
api is rendering
jderochervlk Oct 7, 2025
778f521
api prerender is working
jderochervlk Oct 7, 2025
f566bec
working on api table of contents
jderochervlk Oct 8, 2025
f478604
Initial plan
Copilot Oct 12, 2025
34acb8f
Migrate CodeMirror from v5 to v6 - initial implementation
Copilot Oct 12, 2025
1040aa7
Fix warnings and remove CodeMirror v5 dependency
Copilot Oct 12, 2025
cc339b5
Address code review feedback - fix import paths, error handling, and …
Copilot Oct 12, 2025
8311c48
Fix error validation logic - properly validate both line and column b…
Copilot Oct 12, 2025
6a1b928
Clarify error position indexing in comments - rows are 1-based, colum…
Copilot Oct 12, 2025
87c0785
Fix ReferenceError: createEditor is not defined - call function direc…
Copilot Oct 13, 2025
a631fc4
Format JavaScript files with Prettier
Copilot Oct 13, 2025
5ee2f10
Convert createEditor from raw JavaScript to native ReScript with comp…
Copilot Oct 13, 2025
924e84a
apidocs
jderochervlk Oct 13, 2025
1213a43
use more idiomatic rescript bindings
tsnobip Oct 13, 2025
bc74250
api nav is working
jderochervlk Oct 13, 2025
a90d0a8
trying to fix the inline codeblock
jderochervlk Oct 13, 2025
f8185ff
just remove it for now
jderochervlk Oct 13, 2025
23eaffe
fix &
jderochervlk Oct 13, 2025
31058cb
move syntax pages
jderochervlk Oct 13, 2025
6942b6b
working on blog listing page
jderochervlk Oct 14, 2025
0321c41
working on syntax page
jderochervlk Oct 14, 2025
e997c36
blog listing page is mostly working
jderochervlk Oct 15, 2025
a599198
update to rc.2
jderochervlk Oct 17, 2025
eed9347
blog post is rendering
jderochervlk Oct 17, 2025
bd882a6
fix archived blog posts
jderochervlk Oct 19, 2025
58001ca
Merge branch 'master' of github.com:rescript-lang/rescript-lang.org i…
jderochervlk Oct 19, 2025
0a505e7
static builds are working
jderochervlk Oct 19, 2025
9fe79d8
rendering community pages
jderochervlk Oct 19, 2025
f8dc09b
getting close
jderochervlk Oct 20, 2025
91f9442
package search
jderochervlk Oct 20, 2025
b07a66c
syntax lookup
jderochervlk Oct 20, 2025
dc0ad5d
remove package-lock
jderochervlk Oct 20, 2025
654f09e
rebuild package lock
jderochervlk Oct 20, 2025
b7ba93f
fix webapi
jderochervlk Oct 20, 2025
9ce7121
fixes
jderochervlk Oct 20, 2025
14f7bd2
Merge branch 'master' of github.com:rescript-lang/rescript-lang.org i…
jderochervlk Oct 20, 2025
0fcf8a8
Merge branch 'copilot/migrate-playground-to-cm-v6' of github.com:resc…
jderochervlk Oct 20, 2025
9272d9d
control panel
jderochervlk Oct 20, 2025
7d7bbdf
fix divider
jderochervlk Oct 20, 2025
f676837
more cleanup
jderochervlk Oct 20, 2025
8f15c78
more style fixes
jderochervlk Oct 20, 2025
89112cc
config cleanup
jderochervlk Oct 20, 2025
b1156d8
delete pages folder
jderochervlk Oct 20, 2025
ec22753
Merge branch 'master' of github.com:rescript-lang/rescript-lang.org i…
jderochervlk Oct 21, 2025
0b63251
rebuild package lock and remove .nvmrc
jderochervlk Oct 21, 2025
a5bbc50
try fixing missing types
jderochervlk Oct 22, 2025
219742d
add search
jderochervlk Oct 22, 2025
c9f8095
use npm build
jderochervlk Oct 22, 2025
011e271
fix typo
jderochervlk Oct 22, 2025
7a22a0a
fix package lock webapi version
jderochervlk Oct 22, 2025
0b9887a
run formatter
jderochervlk Oct 22, 2025
ba425b2
rollback codemirror
jderochervlk Oct 23, 2025
201a0ea
back to codemirror 5
jderochervlk Oct 23, 2025
3d650b7
Revert "use more idiomatic rescript bindings"
jderochervlk Oct 23, 2025
ad9b581
back to codemirror 5
jderochervlk Oct 23, 2025
a0ce329
Revert "rollback codemirror"
jderochervlk Oct 23, 2025
7dbe3df
playground is working
jderochervlk Oct 23, 2025
45b99f2
fix background color on dropdown
jderochervlk Oct 23, 2025
3015186
warning table
jderochervlk Oct 23, 2025
d5b111b
docson
jderochervlk Oct 23, 2025
1882fa0
fixed markdown
jderochervlk Oct 23, 2025
3852202
import css
jderochervlk Oct 24, 2025
70aeb1c
remove trailing ;
jderochervlk Oct 24, 2025
ce8576d
add back tests
jderochervlk Oct 24, 2025
7dc4b86
fix doc tests
jderochervlk Oct 24, 2025
0304baa
remove href test
jderochervlk Oct 24, 2025
d48b592
test out redirects
jderochervlk Oct 24, 2025
8547f39
formatting
jderochervlk Oct 24, 2025
11a742f
add 404 page
jderochervlk Oct 24, 2025
91d8860
typo in redirects
jderochervlk Oct 24, 2025
3b0bd2d
fix filename
jderochervlk Oct 24, 2025
20a153b
fix prettier ignore
jderochervlk Oct 24, 2025
113e21b
preconnect to css
jderochervlk Oct 24, 2025
ff62b7b
fix flicker
jderochervlk Oct 24, 2025
9f886db
fix community link
jderochervlk Oct 24, 2025
2d42ed9
Fix community links
jderochervlk Oct 24, 2025
2b785e2
fix search box and docson
jderochervlk Oct 26, 2025
14d00a1
getting meta tags to work
jderochervlk Nov 4, 2025
666f235
meta tags
jderochervlk Nov 4, 2025
20227bb
Merge branch 'master' of github.com:rescript-lang/rescript-lang.org i…
jderochervlk Nov 4, 2025
7cf2561
fix image imports after merge
jderochervlk Nov 4, 2025
6880219
formatting
jderochervlk Nov 4, 2025
2074165
align naming for Lazy components
jderochervlk Nov 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
updating blog pages
  • Loading branch information
jderochervlk committed Oct 3, 2025
commit a39d058fe559dd20f942dac50e490c66a7fe20f7
2 changes: 0 additions & 2 deletions _blogposts/2020-08-28-new-rescript-logo.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ description: |
Today, our resident designer Bettina is unveiling to us the fresh new ReScript branding we've been long waiting for. We hope you're as excited about the result as us!
---

import Image from "src/components/Image";

## Why the Rebranding?

ReScript is the evolution and fusion of Reason and BuckleScript. As we're a design-minded community, we'd like to convey this new identity not only through new technical changes as we've done so far, but also through a proper, more professionally crafted logo, color scheme and font. At the same time, we'd like to do so while recalling our roots.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ description: |
Update on what we're doing around the end of 2020 and early next year.
---

import Video from "src/components/Video";

## Upcoming Improvements

As we're approaching the end of 2020, we'd like to inform our community of our remaining tasks for the year and early next year.
Expand Down
2 changes: 0 additions & 2 deletions _blogposts/2021-06-25-roadmap-2021-and-new-landing-page.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ description: |
Announcing our roadmap for 2021 / 2022, release cycle plans and new landing page.
---

import Image from "src/components/Image.mjs";

## Team Update

It has almost been a year since we originally [launched our new ReScript brand](/blog/bucklescript-is-rebranding), and we think it has been a pretty successful journey so far:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ style: as an JS dictionary for both global modules and local modules.
BuckleScript is focused on making better use of JS ecosystem and provide
values to ship JS code in production (produced by BuckleScript).

<!-- There are still bunch of things to address, most importantly -->
{/* There are still bunch of things to address, most importantly */}

#### Making Bucklescript toolchain more lightweight

Expand Down
2 changes: 1 addition & 1 deletion _blogposts/archive/2019-05-21-ffi-overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -191,4 +191,4 @@ setDate(date, 3);
var d = getDate(date);
```

<!-- , and provide various methods over such abstract data type. -->
{/* , and provide various methods over such abstract data type. */}
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ module A_b_c: {
};
```

<!-- Union types are useful for modeling situations when values can overlap in the types they can take on. -->
{/* Union types are useful for modeling situations when values can overlap in the types they can take on. */}

What happens when we need to know specifically whether we have a value of type `a`? This is a case by case issue; it depends on whether there are some intersections in the runtime encoding of `a`, `b` or `c`. For some primitive types, it is easy enough to use `Js.typeof` to tell the difference between, e.g, `number` and `string`.

Expand Down
10 changes: 5 additions & 5 deletions _blogposts/archive/2020-02-20-loading-stdlib-in-memory.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ description: |

## Loading stdlib from memory

<!-- Do you mean "external files" instead of "external file system"? In Linux world, a file system is means something like EXT4 or btrfs -->
// {/* Do you mean "external files" instead of "external file system"? In Linux world, a file system is means something like EXT4 or btrfs */}

In the next release, we are going to load stdlib from memory instead of from
external files, which will make the BuckleScript toolchain more accessible and
Expand Down Expand Up @@ -61,7 +61,7 @@ file system.

## What are the benefits?

<!-- In the phrase "we can make it installable", what does "it" refer to? -->
{/* In the phrase "we can make it installable", what does "it" refer to? */}

### More accessiblity.

Expand All @@ -71,7 +71,7 @@ subtle interaction with [yarn
reinstall](https://github.com/BuckleScript/bucklescript/issues/2799) is also
solved once and for all.

<!-- instead of "between compiler and stdlib version schemes", perhaps say "for aligning compiler and stdlib version schemes" -->
{/* instead of "between compiler and stdlib version schemes", perhaps say "for aligning compiler and stdlib version schemes" */}

### Easy separation between compiler and JS artifacts

Expand All @@ -89,9 +89,9 @@ now!
Depending on your network speed, the installation is reduced from 15
seconds to 3 seconds. Reinstallation is almost a no-op now.

<!-- TODO: collect data points later -->
{/* TODO: collect data points later */}

<!-- I'm not sure what you mean by "compiling a single file to a string" -->
{/* I'm not sure what you mean by "compiling a single file to a string" */}

### JS playground is easier to build

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ description: |
to expect in the future. The first part is an introduction to our project.
---

import Image from "src/components/Image";

## Hello World!

We are happy to finally show off our brand new blog system for `reasonml.org`. It unifies all the previous articles from the different Reason, BuckleScript, and ReasonReact websites and also acts as a communication channel for community and documentation updates as well.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ description: |
talk about upcoming tools and features.
---

import Image from "src/components/Image";

## Future Tools for the Community

In [part 2](/blog/state-of-reasonml-org-2020-q2-pt2) of this blog series, we talked about the automation process for quality assurance within the documentation platform itself, and how we want to improve the collaboration process for our contributors.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ description: |
This is the final part of the series about our vision of a more accessible Reason platform.
---

import Image from "src/components/Image";

## It's all Opinions

This is the final part of our "State of reasonml.org Q1-2020" series. In [part 3](/blog/state-of-reasonml-org-2020-q2-pt3), we gave our readers some insights on advanced features we've been working on for `reasonml.org` and showed how our tools might help the community to build better documentation experiences themselves.
Expand Down
102 changes: 73 additions & 29 deletions app/routes/MdxRoute.res
Original file line number Diff line number Diff line change
Expand Up @@ -99,43 +99,87 @@ let manualTableOfContents = () => {
categories
}

let loader: Loader.t<loaderData> = async ({request}) => {
let {pathname} = WebAPI.URL.make(~url=request.url)

let mdx = await loadMdx(request)
let apiTableOfContents = () => {
let groups =
allMdx
->filterMdxPages("docs/manual/api")
->groupBySection
->Dict.mapValues(values => values->sortSection->convertToNavItems)

let categories = manualTableOfContents()
// Console.log(groups)

let fileContents = await allMdx
->Array.filter(mdx => (mdx.path :> string)->String.includes(pathname))
->Array.get(0)
->Option.map(mdx => mdx.path)
->Option.map(path => Node.Fs.readFile((path :> string), "utf-8"))
->Option.getOrThrow
// these are the categories that appear in the sidebar
let categories: array<SidebarLayout.Sidebar.Category.t> = [
{name: "Overview", items: groups->Dict.get("Overview")->Option.getOr([])},
{
name: "Additional Libraries",
items: groups->Dict.get("Additional Libraries")->Option.getOr([]),
},
]
categories
}

let markdownTree = Mdast.fromMarkdown(fileContents)
let tocResult = Mdast.toc(markdownTree, {maxDepth: 2})
let loader: Loader.t<loaderData> = async ({request}) => {
let {pathname} = WebAPI.URL.make(~url=request.url)
Console.log(pathname)
let mdx = await loadMdx(request)

let headers = Js.Dict.empty()
// TODO: actually render the blog pages
if pathname->String.includes("blog") {
let res: loaderData = {
__raw: mdx.__raw,
attributes: mdx.attributes,
entries: [],
categories: [],
}

Mdast.reduceHeaders(tocResult.map, headers)
res
} else {
let categories = {
if pathname->String.includes("docs/manual/api") {
Console.log(apiTableOfContents())
[]
} else if pathname->String.includes("docs/manual") {
manualTableOfContents()
} else {
[]
}
}

let entries =
headers
->Dict.toArray
->Array.map(((header, url)): TableOfContents.entry => {
header,
href: (url :> string),
})
->Array.slice(~start=2) // skip first two entries which are the document entry and the H1 title for the page, we just want the h2 sections
// TODO: this can be optionally called if we need markdown
// TODO: extract this out into a separate function
let fileContents = await allMdx
->Array.filter(mdx => (mdx.path :> string)->String.includes(pathname))
->Array.get(0)
->Option.map(mdx => mdx.path)
->Option.map(path => Node.Fs.readFile((path :> string), "utf-8"))
->Option.getOrThrow

let markdownTree = Mdast.fromMarkdown(fileContents)
let tocResult = Mdast.toc(markdownTree, {maxDepth: 2})

let headers = Js.Dict.empty()

Mdast.reduceHeaders(tocResult.map, headers)

let entries =
headers
->Dict.toArray
->Array.map(((header, url)): TableOfContents.entry => {
header,
href: (url :> string),
})
->Array.slice(~start=2) // skip first two entries which are the document entry and the H1 title for the page, we just want the h2 sections

let res: loaderData = {
__raw: mdx.__raw,
attributes: mdx.attributes,
entries,
categories,
}

let res: loaderData = {
__raw: mdx.__raw,
attributes: mdx.attributes,
entries,
categories,
res
}
res
}

let default = () => {
Expand Down
4 changes: 2 additions & 2 deletions docs/manual/async-await.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ section: "Language Features"
order: 22
---

<!-- This prelude is used in many different followup examples, so we use it to shorten the noise of the example code. -->
{/* This prelude is used in many different followup examples, so we use it to shorten the noise of the example code. */}

<div className="hidden">

Expand All @@ -17,7 +17,7 @@ order: 22

</div>

<!-- See https://github.com/cristianoc/rescript-compiler-experiments/pull/1#issuecomment-1131182023 for all async/await use-case examples -->
{/* See https://github.com/cristianoc/rescript-compiler-experiments/pull/1#issuecomment-1131182023 for all async/await use-case examples */}

# Async / Await

Expand Down
2 changes: 1 addition & 1 deletion docs/manual/bind-to-global-js-values.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -150,4 +150,4 @@ if (match !== undefined) {

</CodeTab>

<!-- TODO: revamp this page. Not good. Tell to use globalThis["foo"], and look in our stdlib -->
{/* TODO: revamp this page. Not good. Tell to use globalThis["foo"], and look in our stdlib */}
4 changes: 2 additions & 2 deletions docs/manual/bind-to-js-function.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,7 @@ function register(rl) {

</CodeTab>

<!-- TODO: GADT phantom type -->
{/* TODO: GADT phantom type */}

## Fixed Arguments

Expand Down Expand Up @@ -465,7 +465,7 @@ function test(dom) {

Currently 4 directives are supported: `null_to_opt`, `undefined_to_opt`, `nullable` and `identity`.

<!-- When the return type is unit: the compiler will append its return value with an OCaml unit literal to make sure it does return unit. Its main purpose is to make the user consume FFI in idiomatic OCaml code, the cost is very very small and the compiler will do smart optimizations to remove it when the returned value is not used (mostly likely). -->
{/* When the return type is unit: the compiler will append its return value with an OCaml unit literal to make sure it does return unit. Its main purpose is to make the user consume FFI in idiomatic OCaml code, the cost is very very small and the compiler will do smart optimizations to remove it when the returned value is not used (mostly likely). */}

`identity` will make sure that compiler will do nothing about the returned value. It is rarely used, but introduced here for debugging purpose.

Expand Down
2 changes: 1 addition & 1 deletion docs/manual/bind-to-js-object.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ JavaScript objects are a combination of several use-cases:

ReScript cleanly separates the binding methods for JS object based on these 4 use-cases. This page documents the first three. Binding to JS module objects is described in the [Import from/Export to JS](import-from-export-to-js.md) section.

<!-- TODO: mention scope here too? -->
{/* TODO: mention scope here too? */}

## Bind to Record-like JS Objects

Expand Down
4 changes: 1 addition & 3 deletions docs/manual/build-performance.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ Sometime your build can be slow due to some confused infra setups. We provide an

Run the above command at your ReScript project's root; it'll spit out a JSON file you can drag and drop into `chrome://tracing`.

import Image from "src/components/Image";

<Image
withShadow={true}
src="/static/img/bstracing.png"
Expand Down Expand Up @@ -53,7 +51,7 @@ Cleaning the artifacts should be instantaneous.

We've stress-tested `rescript.exe` on a big project of 10,000 files (2 directories, 5000 files each, first 5000 no dependencies, last 5000 10 dependencies on files from the former directory) using https://github.com/rescript-lang/build-benchmark, on a Retina Macbook Pro Early 2015 (3.1 GHz Intel Core i7).

<!-- TODO: better repro -->
{/* TODO: better repro */}

- No-op build of 10k files: `800ms` (the minimum amount of time required to check the mtimes of 10k files).
- Clean build: \<3 minutes.
Expand Down
2 changes: 1 addition & 1 deletion docs/manual/generate-converters-accessors.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ order: 12

These particular ones are no longer needed. Select a doc version lower than `9.0` in the sidebar to see their old docs.

<!-- TODO: genType -->
{/* TODO: genType */}

When using ReScript, you will sometimes come into situations where you want to

Expand Down
6 changes: 3 additions & 3 deletions docs/manual/interop-cheatsheet.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,18 @@ This is a glossary with examples. All the features are described by later pages.

> **Note:** In ReScript < 8.3, all our attributes started with the `bs.` prefix. This is no longer needed and our formatter automatically removes them in newer ReScript versions.

<!-- Synced from https://github.com/rescript-lang/syntax/blob/123760c5a264da5288eeee5213ddd25eb86d62fe/src/res_printer.ml#L19-L51 -->
{/* Synced from https://github.com/rescript-lang/syntax/blob/123760c5a264da5288eeee5213ddd25eb86d62fe/src/res_printer.ml#L19-L51 */}

### Attributes

- `@as`: [here](attribute#usage), [here](bind-to-js-function#fixed-arguments), [here](bind-to-js-function#constrain-arguments-better) and [here](generate-converters-accessors#usage-3)
- [`@deriving`](generate-converters-accessors#generate-functions--plain-values-for-variants)
- [`@get`](bind-to-js-object#bind-using-special-bs-getters--setters)
- [`@get_index`](bind-to-js-object#bind-using-special-bs-getters--setters)
<!-- - `@ignore` -->
{/* - `@ignore` */}
- [`@inline`](inlining-constants)
- [`@int`](bind-to-js-function#constrain-arguments-better)
<!-- - `@meth` -->
{/* - `@meth` */}
- [`@module`](import-from-export-to-js#import-a-javascript-modules-content)
- [`@new`](bind-to-js-object#bind-to-a-js-object-thats-a-class)
- [`@optional`](generate-converters-accessors#optional-labels)
Expand Down
4 changes: 2 additions & 2 deletions docs/manual/object.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ ReScript objects are like [records](record.md), but:
- Doesn't support updates unless the object comes from the JS side.
- Doesn't support [pattern matching](pattern-matching-destructuring).

<!-- TODO: support update man -->
{/* TODO: support update man */}

Although ReScript records compile to clean JavaScript objects, ReScript objects are a better candidate for emulating/binding to JS objects, as you'll see.

Expand All @@ -40,7 +40,7 @@ type person = {

Visually similar to record type's syntax, with the field names quoted.

<!-- TODO: document {.} and {..} -->
{/* TODO: document {.} and {..} */}

## Creation

Expand Down
2 changes: 1 addition & 1 deletion docs/manual/primitive-types.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ order: 4

ReScript comes with the familiar primitive types like `string`, `int`, `float`, etc.

<!-- TODO: doc unit -->
{/* TODO: doc unit */}

## String

Expand Down
Loading