reduce backtracking in short function syntax and allow yield on rhs