import { Maybe } from '@typed/maybe' ; name type export interface Lens < A , B > { readonly view : ( object : A ) => Maybe < B > ; readonly updateAt : LensUpdateAt < A , B > ; } export type LensUpdateAt < A , B > = { ( f , object ) : A ; ( f ) : ( object : A ) => A ; } ;