아래의 스칼라 컴파일러 오류를 해결하려고합니다. (의사) -Haskell에서Scala에서 메소드 및 하위 유형 다형성 복사
case class CC[E](l:List[E])
trait D[E,L<:CC[E]]{
def f(l:L):L = l.copy(l=List()) // does not compile: "found CC[E], required: L"
}
(하위 입력하지 않고) 등이 될 것이다 일 :
data CC = CC {l::[e]}
'makeLens CC
f l = l .~ _e []
은 현재 내가 ScalaZ, 볼품와 외알 안경으로 찾고 있어요.
언뜻보기에 단안은 의심 스럽지만 (의심 스럽지만) 내 직감이 잘못되면 나를 잘못 판단하십시오.
ScalaZ + 모양이 맞지 않을 수도 있습니다. probably 작동 방법을 잘 모르겠습니다.
1) Scala에서 이것을 해결하는 가장 쉬운 방법은 무엇입니까?
2) ScalaZ 자체로 충분합니까? 아니면 쉐필리스만으로도 충분합니까? 아니면 두 가지 필수품의 조합입니까? 아니면 다른 방법일까요?
흠이 대답 http://www.cakesolutions.net/teamblogs/copying-sealed-trait-instances-a-journey-through 것 같다 -generic-programming-and-shapeless – jhegedus
이것은 관련이있다 : http://stackoverflow.com/a/41000237/1374461 –
흥미 롭다, 팁 주셔서 감사합니다 @ Jasper-M – jhegedus