Scrap Your Boilerplate package에는 Data.Generics.Aliases
에는 단항 및 2 진 유형 생성자에 대한 유형 확장을 허용하는 함수가 있습니다. 특히, ext1
및 ext2
에 대한 정의가 있습니다.3 차 유형 생성자 (ext3)의 유형 확장을위한 SYB 함수를 정의하는 방법은 무엇입니까?
ext1
및
ext2
이
dataCast1
의 관점에서 정의
및 dataCast2
의 Data
형 클래스의 일부이며, 보통 DeriveDataTypeable
기계에 의해 정의 된. 하지만 dataCast3
이 없으므로 ext3
을 정의하는 쉬운 방법은 없습니다.
ext3
을 정의 할 수 있습니까? 그렇다면 어떻게해야합니까?
또한주의 ([gcast1 (http://hackage.haskell.org/packages/archive/base/latest/doc/html/Data-Typeable.html#v:gcast1) 및 [gcast2 즉 http://hackage.haskell.org/packages/archive/base/latest/doc/html/Data-Typeable.html#v:gcast2)가 존재하지만 그 이상은 아닙니다. –
@Tinctorius 네,'gcast3'을 정의하기는 쉽지만,'gcast3'의 관점에서'ext3'을 정의하기 위해서는'Data' 인스턴스 밖에는 타입 정보가 충분하지 않다고 생각합니다. – scvalex