November 19, 2015
I believe that object constructed with pure constructor should be implicitly convertible to immutable. It is, but only for default constructor.

class Foo {
    string s;
    this() pure {
        s = "fpp";
    }
    this(string p) pure { s = p; }
}

void main() {
    auto foo1 = new immutable Foo();      // compiles
    auto foo2 = new immutable Foo("bar"); // fails
}
November 19, 2015
Heh

immutable Foo foo2 = new Foo("bar"); // compiles