Awesome!

I was able to make some local changes to that pull request so that the types of 
the expression parts that were problematic are included also:
    
    
    ...\overloaderrors.nim(9, 43) Error: type mismatch:
    Expression:  inNanoseconds(t2 - t1) / 1000
      [1] int64             :  inNanoseconds(t2 - t1)
      [2] int literal(1000) :  1000
    
    Expected one of (mismatch at position [#]):
      [1] GVec2[/.T] : proc `/`[T](a`gensym156, b`gensym156: GVec2[T]): GVec2[T]
      [1] GVec2[/.T] : proc `/`[T](a`gensym156: GVec2[T]; b`gensym156: T): 
GVec2[T]
      [1] GVec3[/.T] : proc `/`[T](a`gensym156, b`gensym156: GVec3[T]): GVec3[T]
      [1] GVec3[/.T] : proc `/`[T](a`gensym156: GVec3[T]; b`gensym156: T): 
GVec3[T]
      [1] GVec4[/.T] : proc `/`[T](a`gensym156, b`gensym156: GVec4[T]): GVec4[T]
      [1] GVec4[/.T] : proc `/`[T](a`gensym156: GVec4[T]; b`gensym156: T): 
GVec4[T]
      [1] float      : proc `/`(x, y: float): float
      [1] float32    : proc `/`(x, y: float32): float32
      [1] int        : proc `/`(x, y: int): float
      [2] GVec2[/.T] : proc `/`[T](a`gensym156: T; b`gensym156: GVec2[T]): 
GVec2[T]
      [2] GVec3[/.T] : proc `/`[T](a`gensym156: T; b`gensym156: GVec3[T]): 
GVec3[T]
      [2] GVec4[/.T] : proc `/`[T](a`gensym156: T; b`gensym156: GVec4[T]): 
GVec4[T]
    
    
    Run

So the visual exercise becomes pairing up the [1] or [2]. The mismatched type 
has been pulled out to immediately follow the `[#]` which prevents the mental 
parsing of the type signature, but may be unnecessarily verbose.

Thoughts?

Reply via email to