type family RecurseAndCheck a b where
RecurseAndCheck a (HList '[]) = CSat
RecurseAndCheck a (HList ((l :: a) : b)) = RecurseAndCheck a (HList b)
RecurseAndCheck a (HList ((k :: r) : b)) = CNSat
class (forall t (a :: HList t) . RecurseAndCheck (Pair Symbol *) a)
=> Record a
можно это заставить работать?
Хочу сказать "любой хлист элементы которого принадлежат роду (Symbol, *) это рекорд". Как?