{'fraction_non_alphanumeric': 0.015728476821192054, 'fraction_numerical': 0.0033112582781456954, 'mean_word_length': 5.045, '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}}
Haskell: Language for Business Systems

This paper describes the development of a library of reusable Haskell code for building applications that make use of LDAP (Lightweight Directory Access Protocol). The code was written entirely in Haskell. Most was written in Haskell 98 using GHC taking advantage of the growing collection of libraries and one of the current extensions. Our goals were to assess the suitability of Haskell for building business applications and to investigate the benefits of using typed application interfaces.LDAP is defined in the Abstract Syntax Notation One (ASN. 1) which is used in an increasing range of applications, including network management and secure email. We describe our collection of LDAP types and how they bear a striking resemblance to the ASN. 1 definitions. We also provide a separate ASN type and encoding functions that are of use beyond this application.Our typed application interface has proved to be productive by identifying development errors at an early stage. In addition we avoid the limitations imposed by existing LDAP APIs and support pure functional application development. We illustrate this with a Web-based user interface written in Haskell.