\documentclass{ppex}
\nonstopmode
\usepackage [curve,arrow,frame]{xy}
\pagestyle{empty}
\setlength\textwidth{135.0pt}
\begin{document}
\ResetPreambleCommands
\ReadyForTheFray
\usepackage [curve,arrow,frame]{xy}
\[\begin{xy} <1cm,0cm>:
             (0,0)*+@{*}="a"*+!DL{\mathrm{A}},"a"
 \ar@(dr,dl)
 \ar@{~>}    (2,0)*+@{*}="b"*+!DR{\mathrm{B}},"b"
 \ar@(r,d)   "b";"b"
 \ar@{<->}   "b";(2,2)*+@{*}="c"*+!UR{\mathrm{C}},"c"
 \ar@(u,r)   "c";"c" |*=<2pt>[o][F]{}
 \ar@(ul,dr) "c"; (0,2)*+@{*}="d"*+!U{\mathrm{D}},"d"
 \ar@(ul,ur) "d";"d"
 \ar@{.>}@`{(-0.8,1.5),(0.,1.0),(-0.8,0.5)} "d";
\end{xy}\]
\end{document}
