augment
A list producer that can be fused with foldr. This function is merely
> augment g xs = g (:) xs
but GHC's simplifier will transform an expression of the form foldr k z (augment g xs), which may arise after inlining, to g k (foldr k z xs), which avoids producing an intermediate list.
> i 0
> For each edge a--->b insert into graph the edge a<---b . Then change the
> i (i,0,i)
> label of every edge from a---->b to a------->b