Pattern matching. Fixed a bug when unifying type of a recursive function