import type { Either } from './Either' import type * as HKT from './HKT' import type { Option } from './Option' export interface Compactable extends HKT.Base { readonly compact: CompactFn readonly separate: SeparateFn } export interface CompactFn { (fa: HKT.Kind>): HKT.Kind< F, C, string, K, Q, W, X, I, S, R, E, A > } export interface SeparateFn { ( fa: HKT.Kind> ): readonly [HKT.Kind, HKT.Kind] }