digraph RationalModDep {
    size="4,4" ;
    newrank="true" ;
    subgraph cluster1 {
        style=invisible ;
	User [label="\"user code\""]
        User     -> Rational    [label=" uses "] ;
        Rational -> RationalRep [label=" uses "] ;
        RationalRep [label=<RationalRep <BR/> (abstract interface)>]
    }
    subgraph cluster2 {
        style=invisible ;
        RationalRep -> RationalCore     [label=" implements ", dir="back", arrowtail="empty", tailport="sw", headport="n"] ;
        RationalRep -> RationalDeferGCD [label=" implements ", dir="back", arrowtail="empty", tailport="se", headport="n"] ;
    }
}
