[Haskell-cafe] 3 applications of "indexed composition" as a language design principle