I think we can drop the toMap(Func1, Func0) overload. The remaining 3 should do the tricks:

toMap(Func1)
toMap(Func1, Func1)
toMap(Func1, Func1, Func0)