bucklescript-tea
Version:
TEA for Bucklescript
185 lines (163 loc) • 5.24 kB
JavaScript
// Generated by BUCKLESCRIPT, PLEASE EDIT WITH CARE
;
var Block = require("bs-platform/lib/js/block.js");
var Curry = require("bs-platform/lib/js/curry.js");
var Random = require("bs-platform/lib/js/random.js");
var Pervasives = require("bs-platform/lib/js/pervasives.js");
Random.self_init(/* () */0);
var bool = /* Generator */[(function (state) {
return Random.State.bool(state);
})];
function $$int(min, max) {
var match = min < max ? /* tuple */[
min,
max
] : /* tuple */[
max,
min
];
var max$1 = match[1];
var min$1 = match[0];
return /* Generator */[(function (state) {
return min$1 + Random.State.$$int(state, (max$1 - min$1 | 0) + 1 | 0) | 0;
})];
}
function $$float(min, max) {
return /* Generator */[(function (state) {
return min + Random.State.$$float(state, max - min);
})];
}
function list(count, param) {
var genCmd = param[0];
return /* Generator */[(function (state) {
var state$1 = state;
var _i = count;
var _acc = /* [] */0;
while(true) {
var acc = _acc;
var i = _i;
if (i > 0) {
_acc = /* :: */[
Curry._1(genCmd, state$1),
acc
];
_i = i - 1 | 0;
continue ;
} else {
return acc;
}
};
})];
}
function map(func, param) {
var genCmd = param[0];
return /* Generator */[(function (state) {
return Curry._1(func, Curry._1(genCmd, state));
})];
}
function map2(func, param, param$1) {
var genCmd2 = param$1[0];
var genCmd1 = param[0];
return /* Generator */[(function (state) {
var res1 = Curry._1(genCmd1, state);
var res2 = Curry._1(genCmd2, state);
return Curry._2(func, res1, res2);
})];
}
function map3(func, param, param$1, param$2) {
var genCmd3 = param$2[0];
var genCmd2 = param$1[0];
var genCmd1 = param[0];
return /* Generator */[(function (state) {
var res1 = Curry._1(genCmd1, state);
var res2 = Curry._1(genCmd2, state);
var res3 = Curry._1(genCmd3, state);
return Curry._3(func, res1, res2, res3);
})];
}
function map4(func, param, param$1, param$2, param$3) {
var genCmd4 = param$3[0];
var genCmd3 = param$2[0];
var genCmd2 = param$1[0];
var genCmd1 = param[0];
return /* Generator */[(function (state) {
var res1 = Curry._1(genCmd1, state);
var res2 = Curry._1(genCmd2, state);
var res3 = Curry._1(genCmd3, state);
var res4 = Curry._1(genCmd4, state);
return Curry._4(func, res1, res2, res3, res4);
})];
}
function map5(func, param, param$1, param$2, param$3, param$4) {
var genCmd5 = param$4[0];
var genCmd4 = param$3[0];
var genCmd3 = param$2[0];
var genCmd2 = param$1[0];
var genCmd1 = param[0];
return /* Generator */[(function (state) {
var res1 = Curry._1(genCmd1, state);
var res2 = Curry._1(genCmd2, state);
var res3 = Curry._1(genCmd3, state);
var res4 = Curry._1(genCmd4, state);
var res5 = Curry._1(genCmd5, state);
return Curry._5(func, res1, res2, res3, res4, res5);
})];
}
function andThen(func, param) {
var genCmd = param[0];
return /* Generator */[(function (state) {
var res = Curry._1(genCmd, state);
var match = Curry._1(func, res);
return Curry._1(match[0], state);
})];
}
function pair(gen1, gen2) {
return map2((function (a, b) {
return /* tuple */[
a,
b
];
}), gen1, gen2);
}
function generate(tagger, param) {
var genCmd = param[0];
return /* EnqueueCall */Block.__(2, [(function (callbacks) {
var state = Random.get_state(/* () */0);
var genValue = Curry._1(genCmd, state);
Random.set_state(state);
return Curry._1(callbacks.contents.enqueue, Curry._1(tagger, genValue));
})]);
}
function step(param, param$1) {
var newState = Random.State.copy(param$1[0]);
return /* tuple */[
Curry._1(param[0], newState),
/* Seed */[newState]
];
}
function initialSeed(seed) {
return /* Seed */[Random.State.make([seed])];
}
var minInt = Pervasives.min_int;
var maxInt = Pervasives.max_int;
var minFloat = Pervasives.min_float;
var maxFloat = Pervasives.max_float;
exports.minInt = minInt;
exports.maxInt = maxInt;
exports.minFloat = minFloat;
exports.maxFloat = maxFloat;
exports.bool = bool;
exports.$$int = $$int;
exports.$$float = $$float;
exports.list = list;
exports.map = map;
exports.map2 = map2;
exports.map3 = map3;
exports.map4 = map4;
exports.map5 = map5;
exports.andThen = andThen;
exports.pair = pair;
exports.generate = generate;
exports.step = step;
exports.initialSeed = initialSeed;
/* Not a pure module */