{'fraction_non_alphanumeric': 0.01483679525222552, 'fraction_numerical': 0.0, 'mean_word_length': 5.428571428571429, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, '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}}
An idea for a type system of multi-paradigm language with extensible syntax

This article proposes a type system for a multi-paradigm language paradigm. A practical solution that provides the benefits of both static and dynamic typing is proposed, while using the features of the prototype - extensible declarative syntax. A checking algorithm is described that covers both explicit type hierarchy definitions and subtyping based on object's methods. Both compile time and runtime checking responsibilities are added to the type system allowing fluent integration between statically and dynamically checked code segments. Declarative definition of preconditions is provided.