Definition types are delayed to avoid circularity