Should `fold` accept reference to `type` as a function so folds can be defined on a type pojo
Instead of
const X = {
name: 'X',
A: ({ type: X.name, case: 'A' }),
B: ({ type: X.name, case: 'B' }),
map: x => fold (X) ({
A: () => 1,
B: () => 2
})
}
We could do:
const X = {
name: 'X',
A: ({ type: X.name, case: 'A' }),
B: ({ type: X.name, case: 'B' }),
map: fold (() => X) ({
A: () => 1,
B: () => 2
})
}