Wait, now you are doing the work twice! *That's* definitely wrong. I meant the rest of the `to` body in the else:

```D
T toImpl(T, S)(S value)
{
    alias E = typeof(T.init[0]);

    static if (isStaticArray!T)
    {
        auto res = to!(E[])(value);
        enforceEx!ConvException(T.length == res.length, "blablabla");
        return rest[0 .. T.length];
    }
    else
    {
        auto w = appender!(E[])();
        w.reserve(value.length);
        foreach (i, ref e; value)
        {
            w.put(to!E(e));
        }
        return w.data;
    }
}
```

> I'll just have to trust you on this one.

I'm not really even sure about this. I'm having doubts. Might be best to keep it simple here.