TEAは従来のElmの流儀で書いてたら「結局グローバルな状態管理オブジェクト1個に収まるし、それがベストプラクティスよね」ということが発見されて生まれたものなので...
プログラミング言語は全て何らかの対象に特化した専用言語ですので。
汎用言語は、存在しません。というか生き残っていません。すべての形式モデルをサポートした言語は定義可能ですし、そうした試みもありましたが、言語設計者以外誰も使えない極めて難解なものとなっと、という結果になっています。それに、新たなアプリ領域が生まれ、それを表現するための形式モデルが新たに定義されると、また新しい言語が生まれますし。
main = putStrLn "hello"