Как работает Haskell printf?

Безопасность типов Haskell является второй никто не только к зависимому от типизированных языков. Но с Text.Printf творится какое-то глубокое волшебство, которое кажется довольно нестабильным . > printf "%d\n" 3 3 > printf "%s %f %d" "foo" 3.3 3 foo 3.3 3 В чем заключается глубокая магия...