import { $, HKT, kind } from '.' export type CartesianInstances = keyof typeof Cartesian export interface Cartesian { product(fa: $, fb: $): $ } export namespace Cartesian { const __name = "Cartesian" } export function product(fa: $, fb: $): $ { let instance = Cartesian[kind(fa)] as Cartesian return instance.product(fa, fb) }