{'fraction_non_alphanumeric': 0.015011547344110854, 'fraction_numerical': 0.0, 'mean_word_length': 5.72093023255814, '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}}
Principled design of logical fisheye views of functional expressions

We face the problem of simplifying automatically the visualization of expressions in an eager functional language. The problem is relevant for debugging in a programming environment, based on a rewriting model of expression evaluation that displays large intermediate expressions. The simplification technique must filter automatically the parts of an expression which are not interesting for debugging/understanding. We propose the use of logical fisheye views because they provide a balance between showing global context and local information (focus). A straightforward implementation of fisheye views displays too simplified expressions. In the article, we identify five design requirements and describe how they are satisfied. We also include several examples, a discussion and related work.