handles some uncommon loop arguments, eg. doubles and expressions