I can only encourage to use Haskell for such kinds of problems. This was my first Haskell program and I was productive quite fast thanks to &quot;Learn you a Haskell&quot; and the great Parsec library for parsing the Dockerfile.<p>If you are an experienced Haskeller I would be very glad if you look over the project and problems in an issue. Because mostly I have no idea whether what I am doing is idiomatic or not.