Stav dette: Generic Programming for Domain Reasoners