-- This module defines functions for benchmarking -- the efficiency of non-deterministic computations. permute [] = [] permute (x:xs) | u++v=:=permute xs = u++x:v where u,v free ndtest | member 0 (permute [1,2,3,4,5,6,7]) = success member _ [] = False member x (y:ys) = x==y || member x ys