Another workaround would be introducing projected methods to `ReflectionVisitor<T>` to return plural elements.

e.g.
```c#
protected IEnumerable<TypeElement> GetTypeElements(AssemblyElement assemblyElement)
{
    return assemblyElement.Assembly.GetTypes().Select(t => t.ToElement()).ToArray();
}
```