We investigate the problem of producing symmetric tilings by programs in a uniform way. By this, we mean that the construction of a tiling should be parameterized by the geometric model in which the tiling is defined (Euclidean, Hyperbolic, etc.), its formal symmetry group, the interpretation of this symmetry group in the geometric model and a specific tile that fits this interpretation. This parameterization can be obtained at a basic level using higher order functions as decribed in [2] but this fails to reflect in the program the mathematical structure of tilings in an adequate way. We therefore explore of more abstract constructs such as modules and show that they allow to structure the program in a satisfying way. The Objective Caml programming language [1] allows us to place this study in a convenient setting.