The regular-web package

[ Tags: bsd3, generics, library, web ] [ Propose Tags ]

This package implements generic functions for web programming. Based on the regular library [1], we provide generic functions for generating HTML, Formlets, and JSON. For a larger example, see the Example.lhs [2] file on github.




Consider the following datatypes:

data Person = Person
    _name   :: String
  , _age    :: Int
  , _isMale :: Bool
  , _place  :: Place

data Place = Place
    _city      :: String
  , _country   :: String
  , _continent :: String

We can now derive a Regular instance for the Person datatype using Template Haskell:

$(deriveAll ''Place  "PFPlace")
$(deriveAll ''Person "PFPerson")
type instance PF Place  = PFPlace
type instance PF Person = PFPerson

We can construct an example person:

location :: Place
location = Place "Utrecht" "The Netherlands" "Europe"
chris    :: Person
chris    = Person "chris" 25 True location
And, as an example, we can generate |HTML| and |JSON| values:
locationHtml :: X.Html
locationHtml = ghtml location
personHtml :: X.Html
personHtml = ghtml chris
locationJSON :: JSValue
locationJSON = gto location


Versions 0.1, 0.1.1
Dependencies applicative-extras, base (==4.*), fclabels (>=0.4.2), formlets (==0.6.1), json (>=0.4.3), mtl, regular (>=, xhtml [details]
License BSD3
Copyright (c) Chris Eidhof
Author Chris Eidhof
Maintainer Chris Eidhof <>
Category Generics, Web
Home page
Uploaded Sat Mar 20 16:13:42 UTC 2010 by ChrisEidhof
Distributions NixOS:0.1.1
Downloads 757 total (9 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI




Maintainer's Corner

For package maintainers and hackage trustees