routines for working with affine and projective varieties and coherent sheaves on them