module imports.test11931d; template filter(alias pred) { auto filter(Range)(Range r) { struct FilterResult { Range array() { return data; } Range data; } return FilterResult(r); } } struct ConnectionPoint { void disconnect() { if(_f) { _f(); _f = null; } } private void delegate() _f; } struct Signal(T, A...) { ConnectionPoint add(D f) { auto rf = { _arr = _arr.filter!(a => a != f).array; }; return ConnectionPoint(); } private: alias D = T delegate(A); D[] _arr; }