Explain how recursive types are supported