Traced law not well-typed?
Thimoteus opened this issue · 2 comments
Thimoteus commented
specifically track s <<= track t x = track (s <> t) x.
I was trying to prove one of my own instances was law-abiding but ran into trouble here:
track s <<= track t x = extend (track s) (track t x), where extend :: (w a -> b) -> w a -> w b and yet the second argument to extend has type track t x :: b and not w b as expected.
paf31 commented
I think it should be (track s =<= track t) x = track (s <> t) x
Thimoteus commented
I believe it, since my instance obeys it. Thanks!