The common thread in the “architecture” of projects that use functional languages is that they tend to be separated into layers of algebras rather than subsystems in the traditional systems architecture sense.
For great examples of such projects, check out XMonad, Yi, and HappS. If you examine how they are structured, you will find that they comprise layers of monadic structure with some combinator glue in between.
Also look at The Scala Experiment paper which outlines an architecture where a system is composed of components that abstract over their dependencies.