So I've written a library I'm pretty excited about, and there's just one type issue keeping it from all working!
I've got a graph that represents functions and function composition, and I've written a class (pretty directly from Oleg's "TypeEq" work [0]) that tells whether two types are equal. The problem is it doesn't always say they're equal.
Here's a simplified version that has the same issue:
[pragmas [1]]
data Fs a c where
F :: (a -> c) -> Fs a c
Compose :: forall a b c. Fs b c -> Fs a b -> Fs a c