Title: The selected part contain macro application and record expression
Goal: Generalize the function `f/1' by selecting the expression `Rec#rec.first == ?M1', the new parameter is `Equal'.
Parameters: [{file,"gen23.erl"},{posrange,{138,157}},{varname,"Equal"}].
Documentation:  There is not any variable with the name `Equal' in the body of `f/1', so it is possible to introduce a new variable and replace the expression `Rec#rec.first == ?M1' with an application. Its name is `Equal' and its parameter is `Rec'. We should add this expression to the argument list of the function call (`f(1, fun(Rec) -> Rec#rec.first == ?M1 end)'), but it contains a record access expression and a macro application, which are defined later than the function called, so these definitions are moved before the function call. 
