plots, lenses, type families, oh my