N.B.: The order of the two branches is the opposite of "if":
UnBool ifFalse ifTrue bool.
This mirrors the default order of constructors:
data Bool = False | True
----------- False < True
:: a typeCtrl KGHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05
Modulefirst-class-families-0.8.1.0Haskell2010
Booleans.
Note that the operations from this module conflict with Data.Type.Bool.
N.B.: The order of the two branches is the opposite of "if":
UnBool ifFalse ifTrue bool.
This mirrors the default order of constructors:
data Bool = False | True
----------- False < True
type Eval ('False || b) = bDefined in first-class-families-0.8.1.0 · Fcf.Data.Booltype Eval ('True || b) = 'TrueDefined in first-class-families-0.8.1.0 · Fcf.Data.Booltype Eval (a || 'False) = aDefined in first-class-families-0.8.1.0 · Fcf.Data.Booltype Eval (a || 'True) = 'TrueDefined in first-class-families-0.8.1.0 · Fcf.Data.Booltype Eval ('False && b) = 'FalseDefined in first-class-families-0.8.1.0 · Fcf.Data.Booltype Eval ('True && b) = bDefined in first-class-families-0.8.1.0 · Fcf.Data.Booltype Eval (a && 'False) = 'FalseDefined in first-class-families-0.8.1.0 · Fcf.Data.Booltype Eval (a && 'True) = aDefined in first-class-families-0.8.1.0 · Fcf.Data.Bool