{
    fib: {
        fib0: {a: 0, b: 1},
        dec: (n) => -1 + n,
        next: (state) => {a: state.b, b: state.a + state.b},
        helper: (n, state) => if(n, helper(dec(n), next(state)), state.a),
        fib: (n) => helper(n, fib0),
    }.fib,

    triangle: {
        dec: (n) => -1 + n,
        helper: (n, state) => if(n, helper(dec(n), n + state), state),
        fn: (n) => helper(n, 0),
    }.fn,

    triangle2: {
        dec: (n) => -1 + n,
        next: (n, state) => n + state,
        helper: (n, state) => if(n, helper(dec(n), next(n, state)), state),
        fn: (n) => helper(n, 0),
    }.fn,
    t10: triangle(10),
    t200: triangle(200),
    f0to5: [fib(0), fib(1), fib(2), fib(3), fib(4), fib(5)],
    f0: [fib(0)],
    fs: [fib(0), fib(1), fib(2), fib(3), fib(4), fib(5), fib(100)],
    f_big: fib(4000),
}