Coalgebraic structures have recently been paid a lot of attention. On the one hand, they give a systematic and uniform treatment to many interesting and important concepts in computer science, such as objects (in the sense of object-oriented programming), automata, labelled transition systems, and processes. On the other hand, they give us a powerful proof technique called coinduction, which is based on (generalised) bisimulation relations. Coalgebras for polynomial functors, in particluar, give us intuitive models of behavioural specifications. If the functors are resticted to polynomials, however, coalgebras themselves do not have enough expressive power for many applications, and there have been a couple of proposals to overcome the limitations. In one direction, more and more general functors have been considered. One major drawback of this approach is that it becomes more and more difficult to ensure the existance of final coalgebras (hence bisimilarities). Another solution is to introduce algebraic structures on top of coalgebraic ones. Compared with the former, this approach is of limited expressive power, but always ensures the existence of bisimilarities, which validate proofs by coinduction.