declare module 'fp-ts/lib/HKT' {
interface URI2HKT {
'Array': Array;
}
}
export * from './array';
export * from './check';
export * from './combinators';
export * from './entries';
export * from './flow';
export * from './function';
export * from './functor-helpers';
export * from './helper-types';
export * from './iterables';
export * from './lens';
export * from './lens-functions';
export * from './logging';
export * from './math';
export * from './matrix';
export * from './maybe';
export * from './maybe-functions';
export * from './object';
export * from './placeholder';
export * from './string';
export * from './transduce';
export * from './transducers';
/**
* Emulating Higher-Kinded Types-- our map above takes a functor as a second
* the type checks out in that it must both implement the HKT pattern and
* also be a Functor.
* The HKT patterns works, in the simplist terms, by
* 1. Each Class / Type implements at least two readonly properties, _URI & _A
* 2. The _URI is the name of the Class. _A the value of the generic inside the Class (more letters _B, etc. as needed)
* 3. HKT is an interface that says the above properties, _URI & _A must exist
* 4. We use a generic to reference that propertiy
* 5. We pass the generic referencing _URI value to a type resolver `Type` which returns the actual type given the property
* 6. The resolver accepts the name which it checks is a valid `keyof` the interface that maps prop name to types URI2HKT
* 7. The URI2HKT interface is expanded by each library to include its own mapping (per its _URI) to its type. https://github.com/gcanti/fp-ts/blob/033ac95290d19f70233622dec73e71da17038eba/src/Option.ts#L19
*
*/