8
나는이 모델은 SQL과 같은 쿼리 최적화 다음 typeclass :하스켈 중복 인스턴스를 입력 기능
class OptimizableQuery q where
type Optimized q :: *
optimize :: q -> Optimized q
instance Query q => OptimizableQuery q where
type Optimized q = q
optimize q = q
instance (Query q, OptimizableQuery q) => OptimizableQuery (Select (Select q p) p) where
type Optimized (Select (Select q p) p) = Select (Optimized q) p
optimize (Select (Select q _) p) = Select (optimize q) p
문제가 내가 최적화 된 유형의 기능에 대한 "충돌 가족 인스턴스 선언"오류를 얻을 수 있다는 것입니다. 왜 그런데 어떻게 해결할 수 있을까요? 모든 경우를 처리해야하는 대신에 (예를 들어 꽤 많은 수의) "대체 인스턴스"를 갖는 것이 좋을 것입니다 ...
어떻게 해결할 수 있습니까? –
나는 모든 경우를 다 써 버리는 것과는 별개의 대안을 생각할 수 없다. 죄송합니다! –