using a counter for breaking all possible cycles reliably. Refs: #167. Cycles such as: TYPE S* = POINTER TO ARRAY OF S; TYPE T* = POINTER TO ARRAY OF S; did not work with checking only the beginning of the type struct (t0).
Signed-off-by: Josef Templ <josef.templ@gmail.com>