| type F = { f : U32 } | |
| flip : F -> F | |
| -- flip (r {f}) = if f == 0 then r {f = 1} else r {f = 0} | |
| flip r = let r' {f} = r | |
| in if f == 0 then r' {f = 1} | |
| else r' {f = 0} | |
| {- | |
| @ Pattern matching | |
| flip r {f} = f | 0 -> r {f = 1} | |
| | 1 -> r {f = 0} | |
| | _ -> r {f = 0} | |
| -} | |
| -- @ Multiway-If | |
| -- flip r {f} = if | f == 0 -> r {f = 1} | |
| -- | f == 1 -> r {f = 0} | |
| -- | else -> r {f = 1} | |
| -- | |