{-# 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 (>>) = (#)