// ĠOriginal Ġbug : ĠK T - 3 1 3 9 1 Ċ Ċ class ĠA ( val Ġx : ĠA ?) Ġ{ ĊĠĠĠ Ġtail rec Ġfun Ġreg 1 () Ġ{ Ġ// Ġ[ NO _ TAIL _ CALL S _ FOUND ] ĊĠĠĠĠĠĠĠ Ġif Ġ( x Ġ!= Ġnull ) Ġx . reg 1 () Ġ// Ġ[ NON _ TAIL _ REC UR SIVE _ CALL ] ĊĠĠĠ Ġ} ĊĠĠĠ Ġtail rec Ġfun Ġreg 2 () Ġ{ Ġ// Ġ[ NO _ TAIL _ CALL S _ FOUND ] ĊĠĠĠĠĠĠĠ Ġx ?. reg 2 () Ġ// Ġ[ NON _ TAIL _ REC UR SIVE _ CALL ] ĊĠĠĠ Ġ} Ċ } Ċ Ċ tail rec Ġfun ĠA . ext 1 (): ĠA Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( x Ġ!= Ġnull ) Ġx . ext 1 () Ġelse Ġthis Ġ// ĠOK Ġbut Ġ' Replace Ġ' if ' Ġexpression Ġwith Ġel vis Ġexpression ' Ġsuggested Ċ } Ċ Ċ tail rec Ġfun ĠA . ext 2 (): ĠA Ġ{ Ġ// Ġ[ NO _ TAIL _ CALL S _ FOUND ] ĊĠĠĠ Ġreturn Ġx ?. ext 2 () Ġ?: Ġthis Ġ// Ġ[ NON _ TAIL _ REC UR SIVE _ CALL ] Ċ } Ċ