anchor.diff:  }
   ----
   
  -Any mapper class used with this annotation must meet a few criteria:
  +Row mappers used with this annotation must meet a few requirements:
   
   [source,java]
   ----
   public class UserMapper implements RowMapper<User> { // <1> <2>
  -  public UserMapper() // <3>
  +  public UserMapper() { // <3>
       ...
     }
   
  
positive.code:   @RegisterRowMapperFactory(UserMapperFactory.class)
    List<User> list();
  }
  
  public class UserMapperFactory implements RowMapperFactory { // <1>
    public UserMapperFactory() {} // <2>
  
    public Optional<RowMapper<?>> build(Type type, ConfigRegistry config) {
      ...
    }
  }
  ----
  <1> Must be a public class
  <2> Must have a public, no-argument constructor (or a default constructor).
  
  Use `@RegisterColumnMapper` to register a column mapper:
  
  TODO continue here
  ----------------------------
  ----------------------------
  ----------------------------
  ----------------------------
  ----------------------------
  ----------------------------
  ----------------------------
  ----------------------------
  
  
  
  
  You can register mappers declaratively on SqlObjects with annotations such as:
  * @RegisterColumnMapper / @RegisterColumnMapperFactory
  * @RegisterBeanMapper - treat column names as bean properties
  * @RegisterConstructorMapper - treat column name as constructor parameter names
  * @RegisterFieldMapper - treat column names as field names
  
  ===== @SingleValue
  
  
negative.code: The constructor parameter names "id", "name" match the database column names
  and as such no custom mapper code is required at all.
  
  TODO:
  
  * column name prefixes
  * JdbiConstructor annotation
  * ConstructorProperties annotation.
  * Lombok's `@AllArgsConstructor` generates `@ConstructorProperties` on
    constructor, so constructor mappers work well with data classes that have it.
  
  ===== BeanMapper
  
  