Я довольно новичок в Haskell и не до конца понимаю эту ошибку, когда при загрузке файла объятия выводит следующую «Синтаксическую ошибку в объявлении (неожиданно`; ', возможно, из-за неправильного макета) "на строка «проверьте s1 s2 ((x, y): xs)». Я нахожу это запутанным, поскольку нет ";" в коде. Если бы кто-то мог объяснить, почему это происходит и как я могу это исправить, я был бы очень благодарен. Ниже - мой код.
type Owned = String
type Owner = String
type Fact = (Owned,Owner)
database = [(String, String)]
database = [("c4","c5"),("c1","c2"), ("c2", "c3"), ("c3","c4")]
owns :: Owner -> Owned -> Bool
owns s1 s2
| check s1 s2 database = true
| otherwise false
check s1 s2 ((x,y):xs)
| s1==x && y==s2 = true
| s1==x && y==s2 = (check y s2 database)
| otherwise false