Add more expressivity for Booleans
Variations of case classes. if C(a,b), try D(a,b) as fix