Hide some implicit parameters by using context bounds for Rep instead

Makes uses of folds nicer. It does complicate generic functions that
do not rely on pre-defined patterns though.