Played around with IReducible abstraction and

simplified bit the traversal of AST tree, which is
done using reducibles.