-- Functions that can be fused by the compiler are marked with the
-- phrase \"Subject to fusion\".
+eq :: Text -> Text -> Bool
+eq (Text arrA offA lenA) (Text arrB offB lenB)
+ go !n | n == lenA = True
+ where a = A.unsafeIndex arrA (offA+n)
+ b = A.unsafeIndex arrB (offB+n)
t1 == t2 = stream t1 == stream t2