Toward a more functional compiler approch