Динамически параметризовать функцию Poly1 в бесформенном

У меня такая ситуация (урезанная до основных частей)

class Foo[L <: HList](columns: L) {

  class toRecord(row: Row) extends Poly1 {
    implicit def caseColumn[T] = at[Column[T]] { /* map to a record field */ }
  }

  def asRecord = {
    val resultSet: Stream[Row] = // computation to get result set
    resultSet.map { row =>        
      val m = new toRecord(row) // this can't work
      columns.map(m)
    }
  }

}

Это не работает сmap&nbsp;хочет стабильный идентификатор иm&nbsp;не является. Так что мне нужно как можно большеPoly1 singleton objects&nbsp;столько строк у меня в наборе результатов.

Это та же проблема, что обсуждалась здесь:https://groups.google.com/forum/#!topic/shapeless-dev/P5DXRgnzqkY, но я не могу найти способ сделать эту работу.

В связанном обсуждении Майлз Сабин предложилfold&nbsp;сPoly2&nbsp;вместоmap&nbsp;сPoly1, но я не могу понять, как использовать это предложение в моем случае.