Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- disjoint :: forall a m. (Monad m, Typeable a, Ord a) => PVar (Set a) -> PVar (Set a) -> PropT m ()
- equal :: forall a m. (Monad m, Typeable a, Ord a) => PVar (Set a) -> PVar (Set a) -> PropT m ()
- require :: (Monad m, Typeable a, Ord a, Typeable b) => (a -> b -> Bool) -> PVar (Set a) -> PVar (Set b) -> PropT m ()
Documentation
disjoint :: forall a m. (Monad m, Typeable a, Ord a) => PVar (Set a) -> PVar (Set a) -> PropT m () Source #
Apply the constraint that two variables may NOT be set to the same value. This constraint is bidirectional.
E.g. you might apply this constraint to two cells in the same row of sudoku grid to assert they don't contain the same value.