We need to revise the nft::product function. Currently, it allows matching the DONT_CARE symbol with EPSILON and produces EPSILON as the result of this match. This does not feel right, because DONT_CARE should mean "an arbitrary alphabet symbol," with epsilon excluded. However, the existing general implementation of nft::compose somehow relies on this behavior. We need to figure out why, and whether it can be done in a cleaner way.
We need to revise the
nft::productfunction. Currently, it allows matching theDONT_CAREsymbol withEPSILONand producesEPSILONas the result of this match. This does not feel right, becauseDONT_CAREshould mean "an arbitrary alphabet symbol," with epsilon excluded. However, the existing general implementation ofnft::composesomehow relies on this behavior. We need to figure out why, and whether it can be done in a cleaner way.