test(	'test_progs/connect.pl','Graph Connectivity',
	polytype,
	[([X/para(beta,[])],[])],
	connected(X,Y) ).     

test(	'test_progs/merge.pl','merge',
	polytype,
	[([Xs/list(para(beta,[])),Ys/list(para(beta,[]))],[])],
        merge(Xs,Ys,Zs) ).

test(	'test_progs/bugNrev.pl','Buggy Naive Reverse',
	polytype,
	[([X/list(para(beta,[]))],[])],
	nrev(X,Y) ).
	 
test(	'test_progs/buggyqs.pl','Buggy Quick Sort', 
	polytype,
	[([Li/list(para(beta,[]))],[])],
        qs(Li,Lo) ).

test(	'test_progs/iqs.pl','Improved Quick Sort',
	polytype,
	[([Xs/list(para(beta,[]))],[])],
        iqsort(Xs,Ys) ).     

test(	'test_progs/treesort.pl','Tree Sort',
	polytype,
	[([Xs/list(para(beta,[]))],[])],
        treesort(Xs,Ys) ).

test(	'test_progs/lstDiff.pl','List Difference',
	polytype,
	[([Y/list(para(beta,[])),Z/list(para(beta,[]))],[])],
	diff(X,Y,Z) ).

test(	'test_progs/insert.pl','List Insertion',
	polytype,
	[([X/para(beta,[]),Y/list(para(beta,[]))],[])],	
	insert(X,Y,Z) ).

test(	'test_progs/icSort.pl','Interchange Sort',
	polytype,
	[([Xs/list(para(beta,[]))],[])],
	sort(Xs,Ys) ).     

test(	'test_progs/qsDList.pl','Quick Sort with Difference List',
	polytype,
	[([Xs/list(para(beta,[]))],[])],
	quicksort(Xs,Ys) ).

test(	'test_progs/lookup.pl','Dictionary Lookup in Binary Trees',
	polytype, 
	[([K/para(beta,[]),D/dictionary(para(beta,[]),para(gamma,[]))],[])],
        lookup(K,D,V) ).     

test(	'test_progs/permSort.pl','Permutation Sort',
	polytype,
	[([Xs/list(para(beta,[]))],[])],
	sort(Xs,Ys) ).
		
test(	'test_progs/heapify.pl','Heapify Binary Trees',
	polytype,
	[([Tree/tree(para(beta,[]))],[])],
	heapify(Tree,Heap) ).     

test(	'test_progs/exponent.pl','Exponentiation by Multiplication',
	polytype,
	[([N/para(beta,[]),X/para(beta,[])],[])],
	exp(N,X,Y) ).     

test(	'test_progs/fact.pl','Factorial',
	polytype,
	[([N/para(beta,[])],[])],
	factorial(N,F) ).     


