// Generated by ReScript, PLEASE EDIT WITH CARE

import * as Js_promise from "@rescript/runtime/lib/es6/Js_promise.mjs";

async function eachIntAsync(list, f) {
  return (await import("@rescript/runtime/lib/es6/Belt_List.mjs").then(m => m.forEach))(list, f);
}

function eachIntLazy(list, f) {
  return Js_promise.then_(each => Promise.resolve(each(list, f)), import("@rescript/runtime/lib/es6/Belt_List.mjs").then(m => m.forEach));
}

eachIntLazy({
  hd: 1,
  tl: {
    hd: 2,
    tl: {
      hd: 3,
      tl: /* [] */0
    }
  }
}, n => {
  console.log("lazy", n);
});

eachIntAsync({
  hd: 1,
  tl: {
    hd: 2,
    tl: {
      hd: 3,
      tl: /* [] */0
    }
  }
}, n => {
  console.log("async", n);
});

let beltAsModule = await import("@rescript/runtime/lib/es6/Belt_List.mjs");

let M = await import("@rescript/runtime/lib/es6/Belt_List.mjs");

let N0 = await import("@rescript/runtime/lib/es6/Belt_List.mjs");

let O = await import("@rescript/runtime/lib/es6/Belt_List.mjs");

let N1_each = O.forEach;

let N1 = {
  O: O,
  each: N1_each
};

let N2 = await import("@rescript/runtime/lib/es6/Belt_List.mjs");

let N_each = N2.forEach;

let N = {
  N0: N0,
  N1: N1,
  N2: N2,
  each: N_each
};

let M0 = await import("@rescript/runtime/lib/es6/Belt_List.mjs");

let M1 = await import("@rescript/runtime/lib/es6/Belt_List.mjs");

async function f() {
  return (await import("@rescript/runtime/lib/es6/Belt_List.mjs")).forEach;
}

async function f1() {
  return (await import("@rescript/runtime/lib/es6/Belt_List.mjs")).forEach;
}

async function f2() {
  let M3 = await import("@rescript/runtime/lib/es6/Belt_List.mjs");
  let M4 = await import("@rescript/runtime/lib/es6/Belt_List.mjs");
  return [
    M3.forEach,
    M4.forEach
  ];
}

async function f3() {
  let M3 = await import("@rescript/runtime/lib/es6/Belt_List.mjs");
  let M4 = await import("@rescript/runtime/lib/es6/Belt_List.mjs");
  return [
    M3.forEach,
    M4.forEach
  ];
}

async function f4() {
  return (await import("@rescript/runtime/lib/es6/Belt_Array.mjs")).forEach;
}

async function f5() {
  let A = await import("@rescript/runtime/lib/es6/Belt_Array.mjs");
  let O = await import("@rescript/runtime/lib/es6/Belt_Option.mjs");
  return [
    A.forEach,
    O.forEach
  ];
}

async function f6() {
  let MS = await import("@rescript/runtime/lib/es6/Belt_MapString.mjs");
  let A = await import("@rescript/runtime/lib/es6/Belt_Array.mjs");
  return [
    0,
    MS.forEach,
    A.forEach
  ];
}

async function f7() {
  await import("@rescript/runtime/lib/es6/Belt_MapInt.mjs");
  return 1;
}

async function f8() {
  await import("@rescript/runtime/lib/es6/Belt_MutableQueue.mjs");
  return 1;
}

async function f9(value) {
  if (value !== undefined) {
    await import("@rescript/runtime/lib/es6/Belt_HashMapInt.mjs");
    return;
  }
}

let each = M1.forEach;

let M2;

let each2 = O.forEach;

export {
  eachIntAsync,
  eachIntLazy,
  beltAsModule,
  M,
  N,
  M0,
  M1,
  each,
  M2,
  each2,
  f,
  f1,
  f2,
  f3,
  f4,
  f5,
  f6,
  f7,
  f8,
  f9,
}
/*  Not a pure module */
