<commit_before>﻿using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Linq;
using System.Text;

namespace NMF.Expressions
{
    internal interface IExecutionContext
    {
        void AddChangeListener(INotifiable node, INotifyPropertyChanged element, string propertyName);

        void AddChangeListener(INotifiable node, INotifyCollectionChanged collection);

        void RemoveChangeListener(INotifiable node, INotifyPropertyChanged element, string propertyName);

        void RemoveChangeListener(INotifiable node, INotifyCollectionChanged collection);
    }
}<commit_msg>Changed collection change tracker to use generic type argument instead of reflection.<commit_after>﻿using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Linq;
using System.Text;

namespace NMF.Expressions
{
    internal interface IExecutionContext
    {
        void AddChangeListener(INotifiable node, INotifyPropertyChanged element, string propertyName);

        void AddChangeListener<T>(INotifiable node, INotifyCollectionChanged collection);

        void RemoveChangeListener(INotifiable node, INotifyPropertyChanged element, string propertyName);

        void RemoveChangeListener(INotifiable node, INotifyCollectionChanged collection);
    }
}
{'fraction_non_alphanumeric': 0.06010137581462708, 'fraction_numerical': 0.0, 'mean_word_length': 5.488262910798122, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6032774', 'n_tokens_mistral': 323, 'n_tokens_neox': 328, 'n_words': 93}