made Type right-recursive