// 'normal' implementation export const emptyList = []; // const emptyListType = makeGeneric(a => lsType(() => a)); export const get = ls => i => ls[i]; export const put = ls => i => elem => ls.with(Number(i), elem); export const push = ls => elem => ls.concat([elem]); export const pop = ls => ls.pop(); export const map = ls => fn => ls.map(elem => fn(elem)); export const length = ls => ls.length; export const fold = ls => callback => initial => { let acc = initial; for (let i=0; i