add implicit nominal types for recursive types