Rep: Add default implementation built on Generics

Thanks due to @sjoerdvisscher for the implementation.