name type export interface Right < A > { readonly '@typed/Right' : A ; } export namespace Right { name param { A } return { Right < A > } export function of < A > ( value ) { return { '@typed/Right' : value } ; } } name param right export function fromRight < A > ( right ) { return right [ '@typed/Right' ] ; }