interface MatchStep { on: (predicate: (val: I) => boolean, fn: (val: I) => O) => MatchStep; otherwise: (fn: (val: I) => O) => O; } declare const match: { (x: I): MatchStep; eq: (x: T) => (y: T2) => boolean; }; export declare const eq: (x: T) => (y: T2) => boolean; export { match };