&gt; Lisp is not and has never been the right tool for configuration management.<p>Why not?  Configurations are collections of items, and among the things Lisp excels at is…lists of atoms.<p>Take a look at <a href="https:&#x2F;&#x2F;github.com&#x2F;ansible&#x2F;ansible-examples&#x2F;tree&#x2F;master&#x2F;lamp_simple" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ansible&#x2F;ansible-examples&#x2F;tree&#x2F;master&#x2F;lamp...</a> (a simple LAMP stack implemented in Ansible).<p>It uses a .ini-style file to manage lists of hosts, e.g.:<p><pre><code>    [webservers]
    localhost

    [dbservers]
    bensible
    sensible
</code></pre>
Why not put that in a list?<p><pre><code>    (hosts
      (webservers localhost)
      (dbservers bensible sensible))
</code></pre>
The Ansible playbooks are YAML lists. There&#x27;s no particular reason that:<p><pre><code>    ---
    # This playbook deploys the whole application stack in this site
    - name: apply common configuration to all nodes
      hosts: all
      remote_user: root
      
      roles:
      - common
    …
</code></pre>
is more readable than:<p><pre><code>    (playbook
      &quot;This playbook deploys the whole application stack in this site&quot;
      (play
        &quot;apply common configuration to all nodes&quot;
        (hosts all)
        (remote-user root)
        (roles common)
      …)
</code></pre>
or:<p><pre><code>    (playbook &#x27;((all &#x27;(common) :user root :comment &quot;apply common configuration to all nodes&quot;) …)
      :comment &quot;This playbook deploys the whole application stack in this site&quot;)
</code></pre>
In fact, I&#x27;d argue that both Lispy representations are much more readable.