traverseOptionM<B> method

Option<IList<B>> traverseOptionM<B>(
  1. Option<IList<B>> f(
    1. A a
    )
)

Implementation

Option<IList<B>> traverseOptionM<B>(Option<IList<B>> f(A a)) {
  var result = some(nil<B>());
  var current = this;
  while(current._isCons()) {
    final gb = f(current._unsafeHead());
    result = Option.map2(result, gb, (IList<B> a, IList<B> h) => a.plus(h));
    current = current._unsafeTail();
  }
  return result;
}