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