liftS :: (a -> a -> Bool) -> (CmpChain a -> a -> CmpChain a)
liftS op x y = Chain $ (? y) . (`op` y) =<< unChain x
liftS :: (a -> a -> Bool) -> (CmpChain a -> a -> CmpChain a)
liftS op x y = Chain $ (? y) . (`op` y) =<< unChain x
liftS op x y = Chain $ (? y) . (`op` y) =<< unChain x