-record(dual, {value :: float(), tangent :: float()}).