Creates classes with reference semantics, similar to R's built-in
    reference classes. Compared to reference classes, R6 classes are simpler
    and lighter-weight, and they are not built on S4 classes so they do not
    require the methods package. These classes allow public and private
    members, and they support inheritance, even when the classes are defined in
    different packages.

After defining an R6 class, R62S3 is used to automatically generate optional S3/S4 generics and methods for dispatch. Also allows piping for R6 objects.

The implemented R6 class 'SCM' aims to simplify working with structural causal models. The missing data mechanism can be defined as a part of the structural model. The class contains methods for 1) defining a structural causal model via functions, text or conditional probability tables, 2) printing basic information on the model, 3) plotting the graph for the model using packages 'igraph' or 'qgraph', 4) simulating data from the model, 5) applying an intervention, 6) checking the identifiability of a query using the R packages 'causaleffect' and 'dosearch', 7) defining the missing data mechanism, 8) simulating incomplete data from the model according to the specified missing data mechanism and 9) checking the identifiability in a missing data problem using the R package 'dosearch'. In addition, there are functions for running experiments and doing counterfactual inference using simulation.

Provides reference classes implementing some useful data structures.
    The package implements these data structures by using the reference class R6.
    Therefore, the classes of the data structures are also reference classes which means that their instances are passed by reference.
    The implemented data structures include stack, queue, double-ended queue, doubly linked list, set, dictionary and binary search tree.
    See for example <https://en.wikipedia.org/wiki/Data_structure> for more information about the data structures.

Useful methods and data fields to extend the
             bare bones 'R6' class provided by the 'R6' package - ls-method, 
             hashes, warning- and message-method, general get-method and a 
             debug-method that assigns self and private to the global environment.