let some: 'a => option('a);
let isSome: option('a) => bool;
let isSomeValue: Js.Fn.arity2(('a => 'a => bool)) => 'a => option('a) => bool;
let isNone: option('a) => bool;
let getExn: option('a) => 'a;
let equal:
Js.Fn.arity2(('a => 'b => bool)) =>
option('a) =>
option('b) =>
bool;
let andThen: Js.Fn.arity1(('a => option('b))) => option('a) => option('b);
let map: Js.Fn.arity1(('a => 'b)) => option('a) => option('b);
let getWithDefault: 'a => option('a) => 'a;
let default: 'a => option('a) => 'a;
let filter: Js.Fn.arity1(('a => bool)) => option('a) => option('a);
let firstSome: option('a) => option('a) => option('a);