# [Haskell], 102 bytes Port of my BQN answer. <!-- language-all: lang-hs --> import Data.List n!([u,v]:e)=zipWith(-)(n!e)$0:tail n!nub[sort$take 2$(r++[v])\\[u]|r<-e] n!_=1:(0<$n) [Try it online!][TIO-kzs8wc46] [Haskell]: https://www.haskell.org/ [TIO-kzs8wc46]: https://tio.run/##hY89b4MwGIT3/IoXicFWnIqPGggKW5ZK3Ts4VuWqSLFCHAQmQ9T/Tu23qUoblC4nc757Du9Vf6ibZhz1sT11FrbKqodn3duFCYgY2FmWNa0uun3Rdk9WlJigpmFUWqUbMIEZ3kTveqFVhxqSkHTLpThLutuJQX50m1UtHei1iksSbUJDx6PSBip4Py0A2k4bCyGImCUslRAAERLKEoR4MlZKOpsR/iiZ09SpN@VNjj1Okwkmvflf8ofpdT7P@G0jdlmv/FfbK78ue/VnX5@nsozlrJhj8wkvm/By5BVOOfocnQwdj7q3w9Ysjr7Hpk/I/vx8gtD0@pACJ9c45vp@7WsTP3K8L/Ae@XL8BA "Haskell – Try It Online" I feel like there should be a shorter way to replace \$u\$ with \$v\$ in a list (currently `take 2$(r++[v])\\[u]`).