validTellyStrings :: Gen ([Telly], [String])
validTellyStrings = do
  unneededStopper <- arbitrary
  (start, end) <- interspersedLine option PosArg
  let startStrings = map tellyToNestedList start
      endStrings = map tellyToNestedList end
  startList <- fmap concat $ mapM pickItem startStrings
  endList <- fmap concat $ mapM pickItem endStrings
  let endList'
        | null end && not unneededStopper = endList
        | otherwise = "--" : endList
  return (start ++ end, startList ++ endList')
validTellyStrings :: Gen ([Telly], [String])
validTellyStrings = do
  unneededStopper <- arbitrary
  (start, end) <- interspersedLine option PosArg
  let startStrings = map tellyToNestedList start
      endStrings = map tellyToNestedList end
  startList <- fmap concat $ mapM pickItem startStrings
  endList <- fmap concat $ mapM pickItem endStrings
  let endList'
        | null end && not unneededStopper = endList
        | otherwise = "--" : endList
  return (start ++ end, startList ++ endList')
validTellyStrings = do
  unneededStopper <- arbitrary
  (start, end) <- interspersedLine option PosArg
  let startStrings = map tellyToNestedList start
      endStrings = map tellyToNestedList end
  startList <- fmap concat $ mapM pickItem startStrings
  endList <- fmap concat $ mapM pickItem endStrings
  let endList'
        | null end && not unneededStopper = endList
        | otherwise = "--" : endList
  return (start ++ end, startList ++ endList')