{-# OPTIONS_GHC -fno-warn-missing-signatures -fno-warn-unused-do-bind -fno-warn-name-shadowing #-} {-# LANGUAGE NoMonomorphismRestriction #-} {-# LANGUAGE RebindableSyntax #-} module Medium where import Prelude import Html helloWorld x = Html :> ( Head :> Title :> x # Body :> P :> "Hello World!" ) table (n, m) = (Table :>) . replicate n . (Tr :>) $ map (Td :>) [(1::Int)..m] page x = Html :> ( Body :> ( H1 :> ( Img # Strong :> (0 :: Int) ) # Div :> Div :> (1 :: Int) # Div :> ( Form :> ( Fieldset :> ( Div :> ( Div :> ( Label :> "a" # Select :> ( Option :> "b" # Option :> "c" ) # Div :> "d" ) # I :> x ) # Button :> I :> "e" ) ) ) ) ) attrShort x = I :@ AccesskeyA:="a" :> I :@ ClassA:="b" :> I :@ ContenteditableA:="c" :> I :@ TranslateA:="d" :> I :@ DirA:="e" :> I :@ DraggableA:="f" :> I :@ HiddenA :> I :@ IdA:="h" :> I :@ ItempropA:="i" :> I :@ LangA:="j" :> I :@ SpellcheckA:="k" :> I :@ StyleA:="l" :> I :@ TitleA:=x :> "m" attrLong x = I :@ ( AccesskeyA := "a" # ClassA := "b" # ContenteditableA := "c" # TranslateA := "d" # DirA := "e" # DraggableA := "f" # HiddenA # IdA := "h" # ItempropA := "i" # LangA := "j" # SpellcheckA := "k" # StyleA := "l" # TitleA := x ) :> "m" pageA x = Html :> do Body :> do H1 :@ IdA:="a" :> do Img Strong :@ ClassA:="b" :> (0 :: Int) Div :> do Div :@ IdA:="c" :> (1 :: Int) Div :> do Form :@ ClassA:="d" :> do Fieldset :> do Div :@ IdA:="e" :> do Div :> do Label :@ ClassA:="f" :> "a" Select :> do Option :@ IdA:="g" :> "b" Option :> "c" Div :@ ClassA:="h" :> "d" I :> x Button :@ IdA:="i" :> do I :> "e" where (>>) = (#)