implicit def flatten1[A,B,C]:(((a:A,b:B),c:C)) => (a,b,c) implicit def flatten2[A,B,C]:((a:A,(b:B,c:C))) => (a,b,c)