My consistent experience with OCaml has been that the build systems are fiddly and hard to work with, but I've never seen a discussion of why this is so (as opposed to problems with specific build tools). Supposing you were to start from scratch and develop a new build system in a bottom up manner, starting with a set of libraries and utilities and working your way up to a framework or dsl, what would the difficult steps be? martin