id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
20	unification bug	kowey	somebody	"The code
{{{
main =
 do print $ head $ unify left right
    print $ head $ unify right left
 where
  left  = map (GVar . show) [1..3]
  right = drop 1 left ++ [GConst [""X""]]
}}}

The output
{{{
([?1,?1,X],fromList [(""1"",X),(""2"",X),(""3"",X)])
([?2,?3,X],fromList [(""1"",X),(""2"",X),(""3"",X)])
}}}

I think it should be

The output
{{{
([X,X,X],fromList [(""1"",X),(""2"",X),(""3"",X)])
([X,X,X],fromList [(""1"",X),(""2"",X),(""3"",X)])
}}}

The fix is probably simple: just replace after unify"	defect	closed	blocker		core		fixed		
