add Funcs::compose()