case package:first-class-families

(Limited) equivalent of \case { .. } syntax. Supports matching of exact values (-->) and final matches for any value (Any) or for passing value to subcomputation (Else). Examples:
type BoolToNat = Case
[ 'True  --> 0
, 'False --> 1
]

type NatToBool = Case
[ 0 --> 'False
, Any   'True
]

type ZeroOneOrSucc = Case
[ 0  --> 0
, 1  --> 1
, Else   ((+) 1)
]