export interface CompareFunction < T > { ( to , from ) : number ; } export interface EqualFunction < T > { ( from , to ) : boolean ; } export interface Reducer < Accumulator , Element > { ( accumulator , element ) : Accumulator ; } /**
 * A reducer which can return `undefined` to indicate that the current value of
 * the accumulator should be used as the final result.
 */ export interface PartialReducer < Accumulator , Element > { ( accumulator , element ) : Accumulator | undefined ; } export interface View < S , A > { get : ( ) => A ; set : ( value : A ) => S ; } export type StateView < A > = View < void , A > ; export interface Lens < S , A , B > { ( source ) : View < S , B > ; }