associative.pu@startdot
digraph associative {
rankdir = RL;
node [fontsize = 11 ];
s1 [label="A"];
s2 [label="B"];
s3 [label="C"];
s4 [label="D"];
s1 -> s2 [label="f"]
s2 -> s3 [label="g"]
s3 -> s4 [label="h"]
s1 -> s3 [label="g∘f"]
s2 -> s4 [label="h∘g"]
}
@enddot