Generate all counter-examples in a smarter way... weirdly this fixes one check but screws up more...

avoid generating invalid counter examples

switch to sat4j

~/Documents/scala-fix-nondet-patmat/sandbox:topic/fix-nondet-patmat-2.12$ ../qbin/scalac -Xfatal-warnings -unchecked  t8430-2.scala
solution: V1=LetL#11, -V2=CharLit#12, -V1=LetC.type#13, -V1=LetF.type#14, -V1=LetP.type#15, -V2=BooleanLit.type#16, -V2=IntLit.type#17, V2=UnitLit.type#18
solution: V1=LetL#11, -V2=CharLit#12, -V1=LetC.type#13, -V1=LetF.type#14, -V1=LetP.type#15, V2=BooleanLit.type#16, -V2=IntLit.type#17, -V2=UnitLit.type#18
solution: V1=LetL#11, -V2=CharLit#12, -V1=LetC.type#13, -V1=LetF.type#14, -V1=LetP.type#15, -V2=BooleanLit.type#16, V2=IntLit.type#17, -V2=UnitLit.type#18
solution: -V1=LetL#11, -V2=CharLit#12, -V1=LetC.type#13, -V1=LetF.type#14, V1=LetP.type#15, -V2=BooleanLit.type#16, -V2=IntLit.type#17, V2=UnitLit.type#18
solution: -V1=LetL#11, -V2=CharLit#12, -V1=LetC.type#13, V1=LetF.type#14, -V1=LetP.type#15, -V2=BooleanLit.type#16, -V2=IntLit.type#17, V2=UnitLit.type#18
solution: -V1=LetL#11, -V2=CharLit#12, V1=LetC.type#13, -V1=LetF.type#14, -V1=LetP.type#15, -V2=BooleanLit.type#16, -V2=IntLit.type#17, V2=UnitLit.type#18
solution: -V1=LetL#11, -V2=CharLit#12, -V1=LetC.type#13, -V1=LetF.type#14, V1=LetP.type#15, -V2=BooleanLit.type#16, V2=IntLit.type#17, -V2=UnitLit.type#18
solution: -V1=LetL#11, -V2=CharLit#12, -V1=LetC.type#13, V1=LetF.type#14, -V1=LetP.type#15, -V2=BooleanLit.type#16, V2=IntLit.type#17, -V2=UnitLit.type#18
solution: -V1=LetL#11, -V2=CharLit#12, V1=LetC.type#13, -V1=LetF.type#14, -V1=LetP.type#15, -V2=BooleanLit.type#16, V2=IntLit.type#17, -V2=UnitLit.type#18
solution: -V1=LetL#11, -V2=CharLit#12, -V1=LetC.type#13, -V1=LetF.type#14, V1=LetP.type#15, V2=BooleanLit.type#16, -V2=IntLit.type#17, -V2=UnitLit.type#18
solution: -V1=LetL#11, -V2=CharLit#12, V1=LetC.type#13, -V1=LetF.type#14, -V1=LetP.type#15, V2=BooleanLit.type#16, -V2=IntLit.type#17, -V2=UnitLit.type#18
solution: -V1=LetL#11, -V2=CharLit#12, -V1=LetC.type#13, V1=LetF.type#14, -V1=LetP.type#15, V2=BooleanLit.type#16, -V2=IntLit.type#17, -V2=UnitLit.type#18
solution: -V1=LetL#11, V2=CharLit#12, -V1=LetC.type#13, -V1=LetF.type#14, V1=LetP.type#15, -V2=BooleanLit.type#16, -V2=IntLit.type#17, -V2=UnitLit.type#18
solution: -V1=LetL#11, V2=CharLit#12, -V1=LetC.type#13, V1=LetF.type#14, -V1=LetP.type#15, -V2=BooleanLit.type#16, -V2=IntLit.type#17, -V2=UnitLit.type#18
solution: -V1=LetL#11, V2=CharLit#12, V1=LetC.type#13, -V1=LetF.type#14, -V1=LetP.type#15, -V2=BooleanLit.type#16, -V2=IntLit.type#17, -V2=UnitLit.type#18
t8430-2.scala:15: warning: match may not be exhaustive.
It would fail on the following inputs: LetC, LetF, LetL(BooleanLit), LetL(IntLit), LetL(UnitLit), LetP