type A = []A (* @Error Type declaration forms a cycle: A -> A *) end.