-- trivial algorithm -- 18/3/2014 15:40 - 15:53, version 1 broken (13mins) -- 19/03/2014 12:05 - 12:13 modified minbucket to get this trival version (8mins) let triEnum = (\E :: Map (Int,Int) () -> -- find all pairs of connected edges let E1 = map (\(v1,v2) -> if lti (v1,v2) then (v1,v2) else (v2,v1), \_->(), E) in let A = allPairs (fst, E1) in -- find those pairs that are connected by another edge let T1 = eqJoin (\(((_,x),(_,y)),_) -> (x,y), fst, A, E1) in let T2 = eqJoin (\(((_,x),(_,y)),_) -> (y,x), fst, A, E1) in map (\(((v1,_),_),(v2,v3)) -> (v1,v2,v3), \_->(), union (T1,T2))) in ...