Tekstiviesti: Generic Programming for Domain Reasoners