+
+```res
+@react.component
+let make = React.memo((~a: int, ~b: string) => {
+
+ {React.int(a)}
+
+ {React.string(b)}
+
+})
+```
+
+```js
+import * as React from "react";
+import * as JsxRuntime from "react/jsx-runtime";
+
+var make = React.memo(function (props) {
+ return JsxRuntime.jsxs("div", {
+ children: [
+ props.a,
+ JsxRuntime.jsx("br", {}),
+ props.b
+ ]
+ });
+ });
+```
+
+
+
+## arePropsEqual
+
+In React, memo can accept an optional argument called "arePropsEqual". This function takes two arguments: the previous props and the new props of the component.
+It should return true if the old and new props are the same, meaning the component will produce the same output and behavior with the new props as it did with the old ones.
+
+In ReScript, you can use the `arePropsEqual` function with the `React.memoCustomCompareProps` binding. However, `React.memoCustomCompareProps` cannot be combined with `@react.component`.
+
+To work around this, you can redefine the make binding:
+
+