Tiger — support *mutually* recursive data types