digraph {
    compound=true;

    subgraph cluster_a {
        graph[style=dotted];
        a;
    }

    subgraph cluster_bc {
        graph[style=dotted];
        b;
        c;
    }

    subgraph cluster_g {
        graph[style=dotted];
        g;
    }

    subgraph cluster_h {
        graph[style=dotted];
        h;
    }

    subgraph cluster_def {
        graph[style=dotted];
        d;
        e;
        f;
    }

    a -> b;
    a -> g;
    a -> h;

    h -> d;

    b -> c;
    b -> d;
    b -> e

    c -> b;

    d -> e;

    e -> f;

    f -> d;
}
