Tôi có typeclass sau đó mô hình một truy vấn tối ưu hóa SQL như:trường Haskell chồng chéo và chức năng loại
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
vấn đề là tôi nhận được lỗi "khai báo Ví dụ gia đình mâu thuẫn" trên chức năng loại tối ưu. Tại sao điều đó và làm thế nào tôi có thể giải quyết nó? Sẽ thật tuyệt khi có một "trường hợp dự phòng" thay vì phải loại bỏ tất cả các trường hợp (có thể là khá nhiều) ...
Làm cách nào để giải quyết vấn đề này? –
Tôi không thể nghĩ ra bất kỳ giải pháp nào ngoài việc loại bỏ tất cả các trường hợp. Lấy làm tiếc! –