``` val suggested = availableVars.map { it.canonic...
# language-proposals
g
Copy code
val suggested = availableVars.map { it.canonicalName }.minBy { getLevenshteinDistance(it, desiredName) }
val footer = if(suggested != null) " (did you mean '$suggested'?)" else ""
reportSemanticError("no such $mode variable '$desiredName'$footer")
becomes
Copy code
val template = ST("no such $mode variable '$desiredName'<if(suggested)> (did you mean '<suggested>')<endif>").apply{
  addSymbol("suggested", availableVars.map { it.canonicalName }.minBy { getLevenshteinDistance(it, desiredName) })
}
under string template which could be something like
Copy code
val suggested = availableVars.map { it.canonicalName }.minBy { getLevenshteinDistance(it, desiredName) }
reportSemanticError("no such $mode variable '$desiredName'${if(suggested != null)} (did you mean $suggested?)${endif}")
if kotlin was willing to tolerate
endif
, which is anathama to many C-like languages