O que faz (f.) g significa em Haskell?

Eu tenho visto muitas funções sendo definidas de acordo com o padrão(f .) . g. Por exemplo:

countWhere = (length .) . filter
duplicate  = (concat .) . replicate
concatMap  = (concat .) . map

O que isto significa?

questionAnswers(2)

yourAnswerToTheQuestion