Alright. Any Idris users awake?
I want to compare two lists. That's easy to implement recursively, and I THINK it's implementable with zipWith tho docs remain… vague ( https://idris2docs.sinyax.net/data/base/docs/Data.Zippable.html#Data.Zippable.zipWith what does zip do if the lists are of unequal length?)
…but! It *sounds* like something the standard library would have. And indeed I find a Interface-satisfying function exists in in Data.List.Equalities…
…but I can't import that.
I type this post, and the explanation jumps out.



![-- True if two Lists are equal
listEq : List (Eq a) -> List (Eq a) -> Bool
listEq a b =
case (a, b) of
([], []) => True
(_::[], []) => False
([], _::[]) => False
(a1::ar, b1::br) =>
if a1==b1 then
listEq ar br
else False
It fails with: Can't find an implementation for Eq (Eq a)](https://pool.jortage.com/slimeglobal/cache/media_attachments/files/117/471/068/444/960/567/small/28d89e5965f81eb9.png)


![lots of lines like "Success 15943678 [5, 0, 7, 7, 1, 1, 1, 3] eq? True"](https://pool.jortage.com/slimeglobal/cache/media_attachments/files/117/471/163/746/064/641/small/1f61d695fdf9cd0a.png)

![Register A: [THIS IS THE NUMBER I'M TRYING TO FIND]
Register B: 0
Register C: 0
Program:
0 2,4 B = A % 8
1 1,1 B = B xor 1
2 7,5 C = A / (1 << B)
3 1,5 B = B xor 5 [0b101]
4 4,1 B = B xor C
5 5,5 output( B )
6 0,3 A = A / 8
7 3,0 if ( A > 0 ) goto 0](https://pool.jortage.com/slimeglobal/cache/media_attachments/files/117/472/015/006/904/565/small/d01f80b898c63ac5.png)
