#リストの同等性検査するプログラムをfold,unfoldを使って書け.というお題がふってきた.
#書いた
#eql :: Eq a => ([a],[a]) -> Bool
eql = foldr (&&) True . unfoldr phi
where
phi ([],[]) = Nothing
phi (_:xs,[]) = Just (False,(xs,[]))
phi ([],_:ys) = Just (False,([],ys))
phi (x:xs,y:ys) = Just (x==y,(xs,ys))