Haskell: Language for Business Systems
Dan Russell, Dominic Steinitz, Chris Reade
Abstract
Dan Russell, Dominic Steinitz, Chris Reade
Abstract
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.
A significance statement is not available in the OpenAlex record.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
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.
Key concepts: Haskell, Computer science, Lightweight Directory Access Protocol, Programming language, Directory, Functional programming, Directory service, Protocol (science)