{'fraction_non_alphanumeric': 0.015873015873015872, 'fraction_numerical': 0.0, 'mean_word_length': 5.0843373493975905, '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}}
Analysis of recursive types in an imperative language

I introduce Algorithm P and p-set, a new type-analysis algorithm and its associated type description, capable of deducing and accurately representing recursive types in programs in an imperative language, using type information present in both object creation and object use. When applied to Lisp and used to discover unnecessary type checks, Algorithm P is capable of removing close to all of the type checks on structured objects in most programs.