full support for custom type coercions in sink and source mode.