I'm demonstrating affix guessify and at the moment it seems to collect a lot of weights before starting to print guesses and the guesses are the weights nearest to the threshold which makes me think it may not get the best guesses at all.
$ hfst-regexp2fst -o catdog.hfst
A:%+A | b a:%+B | c c a:%+C ;
$ hfst-affix-guessify -i catdog.hfst -o catdogguesser.hfst
$ hfst-fst2fst -i catdogguesser.hfst -o catdogguesser.hiofst -f olw
$ hfst-lookup catdogguesser.hiofst
> groa
hfst-lookup: warning: Got infinite results, number of cycles limited to 5
groa gro+B 4998.000000
groa gro+C 4998.000000
groa gro+B 4998.000000
groa groa 4999.000000
groa groa 4999.000000
groa [...cyclic...]
> groA
hfst-lookup: warning: Got infinite results, number of cycles limited to 5
groA gro+A 4998.000000
groA gro+A 4998.000000
groA groA 4999.000000
groA groA 4999.000000
groA groA 4999.000000
groA [...cyclic...]
> groba
hfst-lookup: warning: Got infinite results, number of cycles limited to 5
groba grob+B 4997.000000
groba grob+B 4998.000000
groba grob+C 4998.000000
groba groba 4999.000000
groba groba 4999.000000
groba [...cyclic...]
It seems to me that number of cycles has not been limited to 5, but 5000. Or, I don't know for sure, there should be no epsilon loops and ? shouldn't match epsilons...
It seems that for any non-toy example this leads to printing just copy of the string and 4999 five times.