<commit_before>﻿/*--------------------------------------------------------------------------
* Multiplex.js - Comprehensive data-structure and LINQ library for JavaScript.
* Ver 0.9.2 (May 7, 2015)
*
* Created and maintained by <NAME> <<EMAIL>>
* Licensed under Apache License Version 2.0
* https://github.com/multiplex/multiplex.js
*
*--------------------------------------------------------------------------*/



declare module 'mx' {
    export = mx;
}

import multiplex = mx;

import IEnumerator = mx.IEnumerator;
import IEnumerable = mx.IEnumerable;

import Enumerator = mx.Enumerator;
import Enumerable = mx.Enumerable;
import Comparer = mx.Comparer;
import EqualityComparer = mx.EqualityComparer;
import ReadOnlyCollection = mx.ReadOnlyCollection;
import List = mx.List;
import SortedList = mx.SortedList;
import KeyValuePair = mx.KeyValuePair;
import Dictionary = mx.Dictionary;
import HashSet = mx.HashSet;
import LinkedListNode = mx.LinkedListNode;
import LinkedList = mx.LinkedList;
import Queue = mx.Queue;
import Stack = mx.Stack;


interface String extends IEnumerable<string> { }
interface Array<T> extends IEnumerable<T> { }




declare module mx {


    /* runtime module
    ---------------------------------------------------------------------- */

    /**
    * Provides a set of static methods that provide support for internal operations.
    */
    export module runtime {
        /**
        * Serves as a hash function for a particular type, suitable for use in hashing algorithms and data structures such as a hash table.
        * @param obj An object to retrieve the hash code for.
        * @param override When true, uses the overriden __hash__ function if it is defined.
        */
        function hash(obj: any, override?: boolean): number;


        /** 
        * Determines whether the specified object instances are considered equal.
        * @param objA The first object to compare.
        * @param objB The second object to compare.
        * @param override When true, uses the overriden __equals__ function if it is defined.
        */
        function equals(objA: any, objB: any, override?: boolean): boolean;


        /**
        * Performs a comparison of two objects of the same type and returns a value indicating whether one object is less than, equal to, or greater than the other.
        * @param objA The first object to compare.
        * @param objB The second object to compare.
        */
        function compare(objA: any, objB: any): number;


        /**
        * Creates A function expression from the specified string lambda expression
        * @param exp String lambda expression.
        */
        function lambda<T>(exp: string): (...args: any[]) => T;


        /**
        * Defines new or modifies existing properties directly on the specified object, returning the object.
        * @param obj The object on which to define or modify properties.
        * @param prop The name of the property to be defined or modified.
        * @param attributes The descriptor for the property being defined or modified.
        */
        function define<T>(obj: T, prop: String, attributes: PropertyDescriptor): T;


        /**
        * Extends the given object by implementing supplied members.
        * @param obj The object on which to define or modify properties.
        * @param properties Represetnts the mixin source object
        * @param attributes The descriptor for the property being defined or modified.
        */
        function mixin<T>(obj: T, properties: Object, attributes?: PropertyDescriptor): T;
    }





    /* multiplex static
    ---------------------------------------------------------------------- */

    /**<commit_msg>lambda generic overloads<commit_after>﻿/*--------------------------------------------------------------------------
* Multiplex.js - Comprehensive data-structure and LINQ library for JavaScript.
* Ver 0.9.2 (May 7, 2015)
*
* Created and maintained by <NAME> <<EMAIL>>
* Licensed under Apache License Version 2.0
* https://github.com/multiplex/multiplex.js
*
*--------------------------------------------------------------------------*/



declare module 'mx' {
    export = mx;
}

import multiplex = mx;

import IEnumerator = mx.IEnumerator;
import IEnumerable = mx.IEnumerable;

import Enumerator = mx.Enumerator;
import Enumerable = mx.Enumerable;
import Comparer = mx.Comparer;
import EqualityComparer = mx.EqualityComparer;
import ReadOnlyCollection = mx.ReadOnlyCollection;
import List = mx.List;
import SortedList = mx.SortedList;
import KeyValuePair = mx.KeyValuePair;
import Dictionary = mx.Dictionary;
import HashSet = mx.HashSet;
import LinkedListNode = mx.LinkedListNode;
import LinkedList = mx.LinkedList;
import Queue = mx.Queue;
import Stack = mx.Stack;


interface String extends IEnumerable<string> { }
interface Array<T> extends IEnumerable<T> { }




declare module mx {


    /* runtime module
    ---------------------------------------------------------------------- */

    /**
    * Provides a set of static methods that provide support for internal operations.
    */
    export module runtime {
        /**
        * Serves as a hash function for a particular type, suitable for use in hashing algorithms and data structures such as a hash table.
        * @param obj An object to retrieve the hash code for.
        * @param override When true, uses the overriden __hash__ function if it is defined.
        */
        function hash(obj: any, override?: boolean): number;


        /** 
        * Determines whether the specified object instances are considered equal.
        * @param objA The first object to compare.
        * @param objB The second object to compare.
        * @param override When true, uses the overriden __equals__ function if it is defined.
        */
        function equals(objA: any, objB: any, override?: boolean): boolean;


        /**
        * Performs a comparison of two objects of the same type and returns a value indicating whether one object is less than, equal to, or greater than the other.
        * @param objA The first object to compare.
        * @param objB The second object to compare.
        */
        function compare(objA: any, objB: any): number;


        /**
        * Creates A function expression from the specified string lambda expression
        * @param exp String lambda expression.
        */
        function lambda<T, TResult>(exp: string): (obj: T) => TResult;


        /**
        * Creates A function expression from the specified string lambda expression
        * @param exp String lambda expression.
        */
        function lambda<T1, T2, TResult>(exp: string): (obj1: T1, obj2: T2) => TResult;


        /**
        * Creates A function expression from the specified string lambda expression
        * @param exp String lambda expression.
        */
        function lambda<T1, T2, T3, TResult>(exp: string): (obj1: T1, obj2: T2, obj3: T3) => TResult;


        /**
        * Creates A function expression from the specified string lambda expression
        * @param exp String lambda expression.
        */
        function lambda<TResult>(exp: string): (...args: any[]) => TResult;


        /**
        * Defines new or modifies existing properties directly on the specified object, returning the object.
        * @param obj The object on which to define or modify properties.
        * @param prop The name of the property to be defined or modified.
        * @param attributes The descriptor for the property being defined or modified.
        */
        function define<T>(obj: T, prop: String, attributes: PropertyDescriptor): T;


        /**
        * Extends the given object by implementing supplied members.
        * @param obj The object on which to define or modify properties.
        * @param properties Represetnts the mixin source object
        * @param attributes The descriptor for the property being defined or modified.
        */
        function mixin<T>(obj: T, properties: Object, attributes?: PropertyDescriptor): T;
    }





    /* multiplex static
    ---------------------------------------------------------------------- */

    /**
{'fraction_non_alphanumeric': 0.14754698559921894, 'fraction_numerical': 0.004271418110812789, 'mean_word_length': 2.1254767353165525, 'pattern_counts': {'":': 0, '<': 24, '<?xml version=': 0, '>': 29, 'https://': 2, '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': '336259', 'n_tokens_mistral': 2015, 'n_tokens_neox': 1968, 'n_words': 835}