sig type left type right type eq type diff type state end