Может это я туплю, но вроде же всё верно:
match moved |> List.exists (fun a -> wire.Equals(a)) with
| true | _ when wire.length <= 1.0 ->
x.scaleWireToElement p lpc wire |> ignore
| false ->
x.moveWireToElement p lpc wire |> ignore
но валится с incomplete pattern, когда результат true