(define (a) (b))
(define (b) (c))
(define (c) (a))
全然ダメですな

template<typename AType>
AType a()
{
return b();
}

template<typename BType>
BType b()
{
return c();
}

template<typename CType>
CType c()
{
return a();
}