--- HAllable
-class HAllable f l where
- type HAll f l
- hAll :: f -> l -> HAll f l
-
-instance HAllable f HNil where
- type HAll f HNil = True
- hAll _ _ = undefined :: True
-
-instance ( IfT (Apply f x) (HAll f xs) False
- , Applyable f x
- , HAllable f xs
- ) => HAllable f (HCons x xs) where
- type HAll f (HCons x xs) = If (Apply f x)
- (HAll f xs)
- False
- hAll f (HCons x xs) = ifT (apply f x)
- (hAll f xs)
- (undefined :: False)
+-- HAll
+type family HAll f l
+type instance HAll f HNil = True
+type instance HAll f (HCons x xs) = If (Apply f x) (HAll f xs) False