JSX: ```reason <button type_="button" /> ``` Compiles to: ```js var React = require("react"); React.createElement("button", { type: "button" }); ``` --- `external`: ```reason type t; [@bs.obj] external make: (~_type: string) => t = ""; let x = make(~_type="x"); ``` Compiles to: ```js var x = { type: "x" }; ``` --- But when bindings to React components meet `external`, it's required to use prefix form: ```reason module X = { [@react.component] [@bs.module "x"] external make: (~_type: string) => React.element = "X"; }; ``` So on the call site it's: ```reason <button type_="button" /> <X _type="x" /> ```