validate :: Rules Char -> ([Int], [Int])
validate (Rules xs) =  let (sp, pr) = unzip $ fmap work xs
                       in (fp $ sp `zip` [1..], fp $ pr `zip` [1..])
    where work (ls,rs) = (noSeqPos ls, posRsInLs ls rs)
          fp = fmap snd . filter (\(x,y) -> (not x))
validate :: Rules Char -> ([Int], [Int])
validate (Rules xs) =  let (sp, pr) = unzip $ fmap work xs
                       in (fp $ sp `zip` [1..], fp $ pr `zip` [1..])
    where work (ls,rs) = (noSeqPos ls, posRsInLs ls rs)
          fp = fmap snd . filter (\(x,y) -> (not x))
validate (Rules xs) =  let (sp, pr) = unzip $ fmap work xs
                       in (fp $ sp `zip` [1..], fp $ pr `zip` [1..])
    where work (ls,rs) = (noSeqPos ls, posRsInLs ls rs)
          fp = fmap snd . filter (\(x,y) -> (not x))