title: What does <T> T mean when used as a method signature? Is it a return type?
body: <pre><code>abstract public &lt;T&gt; T iterEdges(EdgeFun&lt;T&gt; func, T accum);
  </code></pre>
  
  <p>This is for a multithreaded library for graphs. I am not asking for anything pertinent to actual implementation whatsoever, I just don't understand what the double return types mean?</p>
  
  <p>I am just guessing here, but this is my interpretation (I tried googling, but Google doesn't match on non alphanumeric symbols, so I tried a few combinations of terms but didn't get anywhere.) </p>
  
  <p>It is just saying that it will return some kind of collection of T type? Two classes extend the class that this method is found within, and so I guess it allows for polymorphism, but what is the true meaning of this? </p>