import { talkbackPlaceholder } from './Wonka_helpers.bs'; import { talkbackT, signalT } from '../Wonka_types.gen'; type talkbackCb = (tb: talkbackT) => void; export const pull: talkbackT = 0; export const close: talkbackT = 1; export const start = (tb: talkbackCb): signalT => ({TAG: 0, "_0": tb}); export const push = (x: a): signalT => ({TAG: 1, "_0": x}); export const end = (): signalT => 0; export const isStart = (s: signalT) => typeof s !== 'number' && s.TAG === 0; export const isPush = (s: signalT) => typeof s !== 'number' && s.TAG === 1; export const isEnd = (s: signalT) => typeof s === 'number' && s === 0; export const unboxPush = (s: signalT): a | null => isPush(s) ? s["_0"] : null; export const unboxStart = (s: signalT): talkbackCb => isStart(s) ? s["_0"] : (talkbackPlaceholder as any);