Haskell «newtype» для синонимов типов

Я делаю кое-что с SAT и хочу, чтобы у меня были и предложения "and" и "или".

type AndClause = [Literal]
type OrClause  = [Literal]

Но у меня возникают проблемы, когда я их использую:

instance Satisfiable AndClause where ...
instance Satisfiable OrClause where ...

Дает мне «Дублирующиеся объявления экземпляров». Это типы, а не данные или конструкторы типов, поэтому я не думаю, что могу использовать newtype для того, что хочу. Есть ли какое-нибудь решение?

6
задан Don Stewart 17 April 2011 в 21:20
поделиться