lvalues, i.e. they can have their address taken, and occupy storage." This one works: immutable(int)* func() { return &val; } I assume that this is supposed to work too: ref immutable(int) func() { return val; } --