@@ -209,8 +209,8 @@ instance Eq e => Eq (Matrix e cols rows) where
209209 (One a) == (One b) = a == b
210210 (Junc a b) == (Junc c d) = a == c && b == d
211211 (Split a b) == (Split c d) = a == c && b == d
212− x@(Split a b) == y@(Junc c d) = x == abideJS y
213− x@(Junc a b) == y@(Split c d) = abideJS x == y
212+ x@(Split _ _) == y@(Junc _ _) = x == abideJS y
213+ x@(Junc _ _) == y@(Split _ _) = abideJS x == y
214214
215215instance Num e => Num (Matrix e cols rows) where
216216
@@ -218,22 +218,22 @@ instance Num e => Num (Matrix e cols rows) where
218218 (One a) + (One b) = One (a + b)
219219 (Junc a b) + (Junc c d) = Junc (a + c) (b + d)
220220 (Split a b) + (Split c d) = Split (a + c) (b + d)
221− x@(Split a b) + y@(Junc c d) = x + abideJS y
222− x@(Junc a b) + y@(Split c d) = abideJS x + y
221+ x@(Split _ _) + y@(Junc _ _) = x + abideJS y
222+ x@(Junc _ _) + y@(Split _ _) = abideJS x + y
223223
224224 Empty - Empty = Empty
225225 (One a) - (One b) = One (a - b)
226226 (Junc a b) - (Junc c d) = Junc (a - c) (b - d)
227227 (Split a b) - (Split c d) = Split (a - c) (b - d)
228− x@(Split a b) - y@(Junc c d) = x - abideJS y
229− x@(Junc a b) - y@(Split c d) = abideJS x - y
228+ x@(Split _ _) - y@(Junc _ _) = x - abideJS y
229+ x@(Junc _ _) - y@(Split _ _) = abideJS x - y
230230
231231 Empty * Empty = Empty
232232 (One a) * (One b) = One (a * b)
233233 (Junc a b) * (Junc c d) = Junc (a * c) (b * d)
234234 (Split a b) * (Split c d) = Split (a * c) (b * d)
235− x@(Split a b) * y@(Junc c d) = x * abideJS y
236− x@(Junc a b) * y@(Split c d) = abideJS x * y
235+ x@(Split _ _) * y@(Junc _ _) = x * abideJS y
236+ x@(Junc _ _) * y@(Split _ _) = abideJS x * y
237237
238238 abs Empty = Empty
239239 abs (One a) = One (abs a)
@@ -309,7 +309,7 @@ instance {-# OVERLAPPING #-} (FromLists e () rows) => FromLists e () (Either ()
309309 fromLists _ = error "Wrong dimensions"
310310
311311instance {-# OVERLAPPABLE #-} (FromLists e () a, FromLists e () b, KnownNat (Count a)) => FromLists e () (Either a b) where
312− fromLists l@([h] : t) =
312+ fromLists l@([_] : _) =
313313 let rowsA = fromInteger (natVal (Proxy :: Proxy (Count a)))
314314 in Split (fromLists (take rowsA l)) (fromLists (drop rowsA l))
315315 fromLists _ = error "Wrong dimensions"