﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
1792	Give more helpful comparisons on incorrectly used functions?	adabe588@…	somebody	"It is fairly hard to find errors when you call functions incorrectly, it would be nice to be able to get a unified comparison with more precise info for this. Here's an example of a current error message I got:

{{{
Error: No matching function found for AvlTree.foldLeftWith(I.add1, 0, tree)
of type
  .AvlTree.foldLeftWith<function>(foldLeftWithFunction:.I.add1<function>(x:#Integer, el:#Integer) => #Integer, foldAccum:Integer, avlTree:tuple<.I.Compare<function>(x:#Integer, y:#Integer) => Ordering.Ordering, I.Node>) => polymorphic<B> in component <NO COMPONENT>
candidates are 
  .AvlTree.foldLeftWith<function>(foldLeftWithFunction:.Collection.FoldLeftWithFunction<function>(inAccum:polymorphic<FoldAccum>, foldIn:polymorphic<Element>) => polymorphic<FoldAccum>, foldAccum:polymorphic<B>, avlTree:tuple<.AvlTree.Compare<function>(x:polymorphic<A>, y:polymorphic<A>) => Ordering.Ordering, AvlTree.Node>) => polymorphic<B>
}}}

Since the candidates are separated from the original call and the candidate types are still generic it is hard to spot the error. It would be nice to get the actual parameter(s) that caused this problem, something along the line of `AvlTree.foldLeftWith argument foldAccum cannot unify actual Integer with expected polymorphic<B>` if that's where the issue occured.
"	enhancement	new	normal	Future	Frontend				
