This paper describes a document-centered environment for Haskell that is aimed at making the language accessible to a broad range of end users. In this environment (named Vital), Haskell modules are presented as documents with the values they define displayed in place textually or graphically (as ‘views’). An end user, who may have only a superficial knowledge of Haskell, is able to edit a program (for example, manipulating literal values of complex, user-defined ADTs) by interacting with these views. The representation of an ADT and the range of interactions possible with it (that is, its ‘look and feel’) are open-ended and are defined (by an expert user) in terms of Haskell type classes and implemented by a mechanism that employs a specialised form of reflection.


Functional Programming Textual Representation User Program Direct Manipulation Editing Operation 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Burnett, M., et al.: Forms/3: A first-order visual language to explore the boundaries of the spreadsheet paradigm. J. Functional Programming 11(2), 155–260 (2001)MATHGoogle Scholar
  2. 2.
    Callanan, M.: Type-safe clipboard operations for document-centered functional programs. In: 21st British Colloquium for Theoretical Computer Science, Nottingham (2005)Google Scholar
  3. 3.
    Dami, L., Vallet, D.: Higher-order functional composition in visual form. In: Tsichritzis, D. (ed.) Object Applications, Univ. of Geneva, pp. 139–154 (1996)Google Scholar
  4. 4.
    Davie, T., Hammond, K., Quintela, J.: Efficient persistent Haskell. Technical report, Univ. St. Andrews (2000)Google Scholar
  5. 5.
    de Hoon, W.A.C.A.J., Rutten, L.M.W.J., van Eekelen, M.C.J.D.: Implementing a functional spreadsheet in Clean. J. Functional Programming 5(3), 383–414 (1995)CrossRefGoogle Scholar
  6. 6.
    Elliott, C.: Functional images. In: Gibbons, J., de Moor, O. (eds.) The fun of programming, Palgrave. Macmillan, Palgrave (2003)Google Scholar
  7. 7.
    Gottfried, H.J., Burnett, M.: Graphical definitions: making spreadsheets visual through direct manipulation and gestures. In: Proc. VL 1997, Capri, Italy. IEEE, Los Alamitos (1997)Google Scholar
  8. 8.
    Hanna, K.: Interactive visual functional programming. In: Proc. Seventh ACM SIGPLAN Intnl. Conf. on Functional Programming, pp. 145–156. ACM, New York (2002)CrossRefGoogle Scholar
  9. 9.
    Hanna, K.: Vital: a document-centered implementation of Haskell. University of Kent, Includes tutorial, reference manual and download (2005), Available from: http://www.cs.kent.ac.uk/projects/vital/
  10. 10.
    Kelso, J.: Visual representation for functional programs. Technical Report CS-95-01, Dept. of Comp. Sc., Murdoch University (1995)Google Scholar
  11. 11.
    Lisper, B., Malmstrom, J.: Haxcel: a spreadsheet interface to Haskell. In: 14th Int. Workshop on Impl. of Functional Languages, pp. 206–222 (2002)Google Scholar
  12. 12.
    Pang, A., Stewart, D., Seefried, S., Chakravarty, M.M.T.: Plugging Haskell in. In: Proc ACM SIGPLAN workshop on Haskell, Snowbird, USA, pp. 10–21. ACM Press, New York (2004)CrossRefGoogle Scholar
  13. 13.
    Reekie, H.J.: Visual Haskell: a first attempt. Technical Report 94.5, Centre for Adv. Comp. Sc., Univ. of Tech., Sydney (1994)Google Scholar
  14. 14.
    Shneiderman, B.: Direct Manipulation: a step beyond programming languages. IEEE Computer 16(8), 57–67 (1983)Google Scholar
  15. 15.
    Thompson, S.: A functional reactive animation of a lift using Fran. J. Functional Programming 10, 245–268 (2000)MATHCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Keith Hanna
    • 1
  1. 1.University of KentUK

Personalised recommendations