import type { Assert } from './prelude.js'
type Z =
(value: A) =>
B
type And = {
(a: Assert): Assert
(a: Assert, b: Z): Assert
(a: Assert, b: Z, c: Z): Assert
(a: Assert, b: Z, c: Z, d: Z): Assert
}
const and: And =
(...as: Assert[]) =>
(value: unknown) => {
for (const a of as) {
a(value)
}
return value
}
export default and