http://asvd.github.io/microlight/haskel.png
well, since the lib is general, it's built upon compromises. But I am open for suggestions concerning updating the logic for some particular cases