module Data.OpenApi.Compare.Common
  ( zipAll,
  )
where

zipAll :: [a] -> [b] -> Maybe [(a, b)]
zipAll :: [a] -> [b] -> Maybe [(a, b)]
zipAll [] [] = [(a, b)] -> Maybe [(a, b)]
forall a. a -> Maybe a
Just []
zipAll (a
x : [a]
xs) (b
y : [b]
ys) = ((a
x, b
y) (a, b) -> [(a, b)] -> [(a, b)]
forall a. a -> [a] -> [a]
:) ([(a, b)] -> [(a, b)]) -> Maybe [(a, b)] -> Maybe [(a, b)]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [a] -> [b] -> Maybe [(a, b)]
forall a b. [a] -> [b] -> Maybe [(a, b)]
zipAll [a]
xs [b]
ys
zipAll (a
_ : [a]
_) [] = Maybe [(a, b)]
forall a. Maybe a
Nothing
zipAll [] (b
_ : [b]
_) = Maybe [(a, b)]
forall a. Maybe a
Nothing