| Safe Haskell | Safe-Inferred | 
|---|---|
| Language | Haskell2010 | 
Data.Recursive.Bool
Description
The type RBool is like Bool, but allows recursive definitions:
>>>:{let x = RB.true y = x RB.&& z z = y RB.|| RB.false in RB.get x :} True
This finds the least solution, i.e. prefers False over True:
>>>:{let x = x RB.&& y y = y RB.&& x in (RB.get x, RB.get y) :} (False,False)
Use RDualBool from Data.Recursive.DualBool if you want the greatest solution.