Js.ListProvide utilities for list
let length: t('a) => int;let isEmpty: t('a) => bool;let hd: t('a) => option('a);let nth: t('a) => int => option('a);let mapRev: Js.Fn.arity1(('a => 'b)) => t('a) => t('b);let map: Js.Fn.arity1(('a => 'b)) => t('a) => t('b);let iter: Js.Fn.arity1(('a => unit)) => t('a) => unit;let iteri: Js.Fn.arity2((int => 'a => unit)) => t('a) => unit;let foldLeft: Js.Fn.arity2(('a => 'b => 'a)) => 'a => list('b) => 'a;Application order is left to right, tail recurisve
let foldRight: Js.Fn.arity2(('a => 'b => 'b)) => list('a) => 'b => 'b;Application order is right to left tail-recursive.
let filter: Js.Fn.arity1(('a => bool)) => t('a) => t('a);let filterMap: Js.Fn.arity1(('a => option('b))) => t('a) => t('b);let countBy: Js.Fn.arity1(('a => bool)) => list('a) => int;let init: int => Js.Fn.arity1((int => 'a)) => t('a);let toVector: t('a) => array('a);let equal: Js.Fn.arity2(('a => 'a => bool)) => list('a) => list('a) => bool;