export interface OpticError { readonly __error: unique symbol; } export interface ArrayExpected extends OpticError { readonly _: unique symbol; readonly _t: T; } export interface ArrayOfExpected extends OpticError { readonly _: unique symbol; readonly _e: E; readonly _t: T; } export interface ArrayOfIndexValuePairsExpected extends OpticError { readonly _: unique symbol; readonly _t: T; } export interface ArrayOrStringExpected extends OpticError { readonly _: unique symbol; readonly _t: T; } export interface Expected extends OpticError { readonly _: unique symbol; readonly _t: T; readonly _u: U; } export interface InvalidModifyFn extends OpticError { readonly _: unique symbol; readonly _got: Got; readonly _expected: Expected; } export interface InvalidPick extends OpticError { readonly _: unique symbol; readonly _k: K; readonly _a: A; } export interface NoSuchProperty extends OpticError { readonly _: unique symbol; readonly _k: K; readonly _a: A; } export interface RecordExpected extends OpticError { readonly _: unique symbol; readonly _t: T; } export interface StringExpected extends OpticError { readonly _: unique symbol; readonly _t: T; } export interface TraversalExpected extends OpticError { readonly _: unique symbol; } export interface TupleExpected extends OpticError { readonly _: unique symbol; readonly _n: N; readonly _t: T; }