Correction

Carl McTague mctague@santafe.edu
Wed, 31 Jul 2002 16:48:07 -0600


I'm sorry, there was a subtle error in the definition of the function
finAuDeterminize in my posting, which caused genuine performance
trouble!  Replace sort by (sort.nub).  That is:

finAuDeterminize :: (Ord l) => FinAu l -> FinAu [l]
finAuDeterminize startStates = [f startStates]
    where f :: (Ord l) => [FaState l] -> FaState [l]
          f states = FaState label' acceptQ' trans'
	      where label' = (sort.nub) (map label states)
		    acceptQ' = or (map acceptQ states)
		    trans' = map (singleton.f.concat) (transpose (map trans states))
		    singleton a = [a]

Carl