Porting the Clean Object I/O Library to Haskell

  • Authors:
  • Peter Achten;Simon L. Peyton Jones

  • Affiliations:
  • -;-

  • Venue:
  • IFL '00 Selected Papers from the 12th International Workshop on Implementation of Functional Languages
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

Pure, functional programming languages offer several solutions to construct Graphical User Interfaces (GUIs). In this paper we report on a project in which we port the Clean Object I/O library to Haskell. The Clean Object I/O library uses an explicit environment passing scheme, based on the uniqueness type system of Clean. It supports many standard GUI features suchas windows, dialogues, controls, and menus. Applications can have timing behaviour. In addition, there is support for interactive processes and message passing. The standard functional programming language Haskell uses a monadic framework for I/O. We discuss how the Object I/O library can be put in a monadic framework without loosing its essential features. We give an implementation of an essential fragment of the Object I/O library to demonstrate the feasibility. We take especial consideration for the relevant design choices. One particular design choice, how to handle state, results in two versions.