Try via CLI

Since 5.1.0, you can try bucklescript in a single file or via command line

bucklescript>bsc -i -e 'let id = x => x' let id: 'a => 'a;

Here -i flags tell the compiler to infer the signature.

bucklescript.github.io>bsc -e 'let id = x => x' // Generated by BUCKLESCRIPT, PLEASE EDIT WITH CARE 'use strict'; function id(x) { return x; } exports.id = id; /* No side effect */

You can also compile it directly via bsc test.re.

Suppose you have a file called test.re:

let rec fib (n) = switch n { | 0 | 1 => 1; | n => fib (n -1) + fib(n-2); }; Js.log (fib (0));

You can compile it directly via bsc test.re, producing the following output:

bucklescript.github.io>bsc test.re // Generated by BUCKLESCRIPT, PLEASE EDIT WITH CARE 'use strict'; function fib(n) { if (n === 0 || n === 1) { return 1; } else { return fib(n - 1 | 0) + fib(n - 2 | 0) | 0; } } console.log(fib(0)); exports.fib = fib; /* Not a pure module */

You can also get the inferred signature directly via bsc -i test.re

let fib: int => int;