Prelude> let bbcode indice text = "["++indice++"]"++text++"[/"++indice++"]"
Prelude> let b = bbcode "b"
Prelude> let u = bbcode "u"
Prelude> let i = bbcode "i"
Prelude> let expert = b . u . i
Prelude> expert "programmer"
"programmer"
Prelude> zipWith ($) (cycle [id, b, u, i, expert]) (words s)
* Exception: Stack overflow