Handle recursive types