@@ -447,20 +447,15 @@ tr :: Matrix e cols rows -> Matrix e rows cols
447tr (M m) = M (I.tr m)
447tr (M m) = M (I.tr m)
449-- Selective 'select' operator
449-- Selective 'select' operator
451−select :: (Bounded a, Bounded b, Enum a, Enum b, Num e, Ord e,
451+ ( Num e,
452− KnownNat (I.Count (I.FromNat (I.Count a))),
452+ I.FromLists e (I.FromNat rows1) (I.FromNat rows1),
453− KnownNat (I.Count (I.FromNat (I.Count b))),
454− KnownNat (I.Count (I.FromNat cols1)),
453+ KnownNat (I.Count (I.FromNat rows1)),
455− I.FromLists e (I.FromNat (I.Count b)) (I.FromNat (I.Count a)),
454+ I.FromNat rows2 ~ I.FromNat rows1,
456− I.FromLists e (I.FromNat (I.Count b)) (I.FromNat (I.Count b)),
455+ I.FromNat cols1 ~ I.FromNat cols2,
459− ~ Either (I.FromNat (I.Count a)) (I.FromNat (I.Count b)),
456+ I.FromNat rows3 ~ Either (I.FromNat cols3) (I.FromNat rows1)
460− I.FromNat cols2 ~ I.FromNat cols1,
461− I.FromNat (I.Count b) ~ I.FromNat rows2) =>
462− Matrix e cols1 rows1 -> (a -> b) -> Matrix e cols2 rows2
457+ ) => Matrix e cols1 rows3 -> Matrix e cols3 rows1 -> Matrix e cols2 rows2
463−select (M m) y = M (I.select m y)
458+select (M m) (M y) = M (I.select m y)
465-- McCarthy's Conditional
460-- McCarthy's Conditional