\begin{ccRefConcept}{R} The representation class parameter of the kernel types is denoted by \ccc{R}. In terms of concepts, whenever \ccc{R} is used with a class \ccc{Kernel_object_d}, a model for \ccc{R} must provide a nested type \ccc{R::Kernel_object_d} that conicides with \ccc{Kernel_object_d}. The \cgal\ classes \ccc{Cartesian}, \ccc{Homogeneous}, \ccc{Simple_cartesian} and \ccc{Simple_homogeneous} fulfill this requirement. The requirement is slightly stronger than the requirements for \ccc{Kernel}, since a type identity between \ccc{Kernel::Kernel_object_d} and \ccc{Kernel_object_d} is not required for a \ccc{Kernel}. The class \ccc{Kernel_object_d} need not even be instantiable. \ccTypes \ccNestedType{FT}{a number type that is a model for \ccc{FieldNumberType}} \ccGlue \ccNestedType{RT}{a number type that is a model for \ccc{RingNumberType}} \ccHasModels \ccc{Cartesian}, \ccc{Homogeneous}, \ccc{Simple_cartesian}, \ccc{Simple_homogeneous} \ccSeeAlso \ccc{Point_2} \\ \ccc{Vector_2} \\ \ccc{Direction_2} \\ \ccc{Line_2} \\ \ccc{Ray_2} \\ \ccc{Segment_2} \\ \ccc{Triangle_2} \\ \ccc{Iso_rectangle_2} \\ \ccc{Aff_transformation_2} \\ \ccc{Circle_2} \\ \ccc{Point_3} \\ \ccc{Vector_3} \\ \ccc{Direction_3} \\ \ccc{Iso_cuboid_3} \\ \ccc{Line_3} \\ \ccc{Ray_3} \\ \ccc{Sphere_3} \\ \ccc{Segment_3} \\ \ccc{Plane_3} \\ \ccc{Triangle_3} \\ \ccc{Tetrahedron_3} \\ \ccc{Aff_transformation_3} \\ \ccc{Point_d} \end{ccRefConcept}