Text this: Logic programming with extensible types /