git.iko.soy/typeable/servant
on master help sign in
Fix loop in IsSubList

See #293.

commitb20edfd96a9b62f5dadaba9772adb8abe0a3691d authorJulian K. Arni <jkarni@gmail.com> dateWed 16 Dec 2015, 13:41 (11 years ago) parent82deaeb
1 file changed+5−4
servant/src/Servant/Utils/Links.hs+5−4
servant/src/Servant/Utils/Links.hs+5−4
@@ -180,12 +180,13 @@ type family IsElem endpoint api :: Constraint where
180180 IsElem e e = ()
181181 IsElem e a = IsElem' e a
182182
183−
184183type family IsSubList a b :: Constraint where
185184 IsSubList '[] b = ()
186− IsSubList '[x] (x ': xs) = ()
187− IsSubList '[x] (y ': ys) = IsSubList '[x] ys
188− IsSubList (x ': xs) y = IsSubList '[x] y `And` IsSubList xs y
185+ IsSubList (x ': xs) y = Elem x y `And` IsSubList xs y
186+
187+type family Elem e es :: Constraint where
188+ Elem x (x ': xs) = ()
189+ Elem y (x ': xs) = Elem y xs
189190
190191-- Phantom types for Param
191192data Query