If I understand your question correctly, that you always wish to have a helper available when working with A and not not sometimes (for which you have implicits as mentioned in the first example), then how about:

trait A extends Helper[A]{
   def canMakeA:A = //

This does exactly solve the purpose.

Related Query