the most restrictive type is used for temporary variables