  Much work has been done to develop causal reasoning techniques across a
number of domains, however the utilisation of causality within autonomous
systems is still in its infancy. Autonomous systems would greatly benefit from
the integration of causality through the use of representations such as
structural causal models (SCMs). The system would be afforded a higher level of
transparency, it would enable post-hoc explanations of outcomes, and assist in
the online inference of exogenous variables. These qualities are either
directly beneficial to the autonomous system or a valuable step in building
public trust and informing regulation. To such an end we present a case study
in which we describe a module-based autonomous driving system comprised of
SCMs. Approaching this task requires considerations of a number of challenges
when dealing with a system of great complexity and size, that must operate for
extended periods of time by itself. Here we describe these challenges, and
present solutions. The first of these is SCM contexts, with the remainder being
three new variable categories -- two of which are based upon functional
programming monads. Finally, we conclude by presenting an example application
of the causal capabilities of the autonomous driving system. In this example,
we aim to attribute culpability between vehicular agents in a hypothetical road
collision incident.
