* rewritten with FromRow and ToRow typeclasses