Module type Relude_Interface.SEQUENCE

Module type signature for a module that represents a sequence of values and related functions.

type t('a);
let emptyLazy: unit => t('a);
let length: t('a) => int;
let isEmpty: t('a) => bool;
let isNotEmpty: t('a) => bool;
let head: t('a) => option('a);
let tail: t('a) => option(t('a));
let tailOrEmpty: t('a) => t('a);
let uncons: t('a) => option(('a, t('a)));
let prepend: 'a => t('a) => t('a);
let append: 'a => t('a) => t('a);
let concat: t('a) => t('a) => t('a);
let reverse: t('a) => t('a);
let mkString: string => t(string) => string;
let zip: t('a) => t('b) => t(('a, 'b));
let zipWith: ('a => 'b => 'c) => t('a) => t('b) => t('c);
let fromArray: array('a) => t('a);
let fromList: list('a) => t('a);
let toArray: t('a) => array('a);
let toList: t('a) => list('a);
let eqBy: ('a => 'a => bool) => t('a) => t('a) => bool;
let showBy: ('a => string) => t('a) => string;
module Functor: BsBastet.Interface.FUNCTOR with type Functor.t('a) := t('a);
module Apply: BsBastet.Interface.APPLY with type Apply.t('a) := t('a);
module Applicative: BsBastet.Interface.APPLICATIVE with type Applicative.t('a) := t('a);
module Monad: BsBastet.Interface.MONAD with type Monad.t('a) := t('a);
module Foldable: BsBastet.Interface.FOLDABLE with type Foldable.t('a) := t('a);
module Traversable: (A: BsBastet.Interface.APPLICATIVE) => BsBastet.Interface.TRAVERSABLE with type Traversable.t('a) = t('a) and type Traversable.applicative_t('a) = A.t('a);
module Eq: (EqA: BsBastet.Interface.EQ) => BsBastet.Interface.EQ with type Eq.t = t(EqA.t);
module Show: (ShowA: BsBastet.Interface.SHOW) => BsBastet.Interface.SHOW with type Show.t = t(ShowA.t);