Added support of recursive datatypes.