import { Eq } from './Eq';
import { Pprint } from './Pprint';
/** To test a type, you should be able to compare 2 values and print them out. */
export interface Testable extends Eq, Pprint {
}
export declare const testable: (eqA: Eq, pprintA: Pprint) => {
pprint: (a: A) => import("./Pnode").Pnode;
eq: (x: A, y: A) => boolean;
};
export declare const tUndefined: {
pprint: (a: undefined) => import("./Pnode").Pnode;
eq: (x: undefined, y: undefined) => boolean;
};
export declare const tNull: {
pprint: (a: null) => import("./Pnode").Pnode;
eq: (x: null, y: null) => boolean;
};
export declare const tString: {
pprint: (a: string) => import("./Pnode").Pnode;
eq: (x: string, y: string) => boolean;
};
export declare const tNumber: {
pprint: (a: number) => import("./Pnode").Pnode;
eq: (x: number, y: number) => boolean;
};
export declare const tArray: (ta: Testable) => Testable>;
export declare const tRecord: (ta: Testable) => Testable>;
export declare const tAny: {
pprint: (a: any) => import("./Pnode").Pnode;
eq: (x: any, y: any) => boolean;
};
export declare const tStrict: {
pprint: (a: any) => import("./Pnode").Pnode;
eq: (x: any, y: any) => boolean;
};