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