This paper presents two extensions of the second order polymorphic
lambda calculus, system F, with monotone (co)inductive types supporting
(co)iteration, primitive (co)recursion and inversion principles as
primitives. One extension is inspired by the usual categorical
approach to programming by means of initial algebras and final
coalgebras; whereas the other models dialgebras, and can be seen as an extension of Hagino's
categorical lambda calculus within the framework of parametric
polymorphism. The systems are presented in Curry-style, and are proven to be terminating and
type-preserving. Moreover
their expressiveness is shown by means of several programming
examples, going from usual data types to lazy codata types such as streams
or infinite trees.