Функции on/once, которые принимают любой источник событий или событие и возвращают асинхронный итератор: перейти перейти
Функции filter/map/seq/take/any возвращающие асинхронный итератор: перейти перейти перейти перейти перейти
Функции every/forEach/onlyEvent/repeat для реализации композиции drag and drop DND: перейти перейти перейти перейти
const dnd = repeat(() => filter(
seq(
once(box, "mousedown"),
every(
any(
on(block, "mousemove"),
on(box, "mouseup")
),
onlyEvent("mousemove")
)
),
onlyEvent("mousemove")
));