HoDoKu Finned Swampfish

Finned Swampfish: row 1, row 7 and col D, col H on 7 (H8-7, H9-7)

All the possible positions of the value 7 in two base rows are in the same two cover cols; except row 7 which has extra fins I7-7, but each elimination sees all of the fins.

Hence if any of the fins were 7 then H8-7, H9-7 still could not be 7, and 7 must either be in the fish or in one of the fins, so either way we can remove 7 from covers except bases that see all of the fins.

Therefore we can remove H8-7, H9-7.

Explanation

Finned fish increase the utility of the Fish concept by expanding the number of hints produced, at the cost of limited eliminations. A prima facea look at fins says it breaks the core Fish covenant: N bases have only N places for value, hence the value is "locked into" these bases, but adding the restriction that each elimination sees all of the fins props-up the whole deal, so it's logically valid, it's just a bit slow Redge.

Note that BasicFisherman is S__TLOADS faster than ComplexFisherman coz it's much simpler. A genius would work-out how to find finned fish efficiently. I'm just a stupid programmer. This is the best I can do: A bit s__t; and it only gets worse from here, in terms of complexity, if not time.