I am playing around with some small graph theory problems.
[Yeah I know there are good libraries -- as I said just playing around...]
And I need to do things like
type Vertex = Ix a => a
(so that a vertex can be used to index an adjacency-list-array)
That is to say that whenever 'Vertex' appears in a type signature, the Ix should 'float' out to the qualifier list
After a lot of nudging from the error messages and rewriting as
type Vertex = forall a. Ix a => a
and giving options
LANGUAGE RankNTypes, ImpredicativeTypes, LiberalTypeSynonyms
I still get all kinds of errors. I'll report them if required. However first of all would like to know: Is this the way to go? Is this possible?