:- include(test_header). %functorDeclares(tFish). %functorDeclares(tSwim). :- dynamic(tFish/2). :- dynamic(tSwim/2). :- dmsg("tweety and chilly are fish."). tFish(iTweety). tFish(iChilly). :- dmsg("fish swim by default."). mdefault(( tFish(X) ==> tSwim(X))). /* :- header_sane:listing(nt/3). :- header_sane:listing(tSwim/1). :- header_sane:listing(pt/2). :- header_sane:listing(mdefault/1). */ :- dmsg("make sure *both* can swim (this exposes a potential bug in monadic predicates)"). :- mpred_test((tSwim(iTweety))). :- mpred_test((tSwim(iChilly))). ~tSwim(iChilly). :- mpred_test( \+ (tSwim(iChilly))). :- mpred_test((tSwim(iTweety))).