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