Split different `in-edges` implementations

Changed my mind. Now i think it is wrong to combine implementations in
such manner.
Split `transpose` implementation for different graphs