diff --git a/src/cond.js b/src/cond.js index eaf063a..9cb2853 100644 --- a/src/cond.js +++ b/src/cond.js @@ -18,7 +18,7 @@ export const maybe = curry( return result.isOk() ? result : succeed([], original) }) -export const not = parser => state => { +export const not = curry((parser, state) => { const result = parser(state) if (result.isOk()) { @@ -26,13 +26,13 @@ export const not = parser => state => { } else { return succeed([], state) } -} +}) -export const until = parser => state => { +export const until = curry((parser, state) => { let result = ok(state) while (result.isOk()) { - const [original, clone] = fork(state) + const [original, clone] = result.chain(fork) result = result.chain(x => parser(clone)) if (result.isOk()) { break @@ -42,7 +42,7 @@ export const until = parser => state => { } return result -} +}) export const skip = curry((parser, state) => { })