Hi devs,

Is it possible to programmatically recover the role of a type variable?

Or, possibly, a list of the roles of the type variables from left to right?

For example, if i have:

data Foo a = Foo (1)
newtype Bar a b = Bar (a -> b) (1)

Getting the role list of (1) would give me [Phantom], and (2) would give me [Representational, Representational].

I know in compiler/types/TyCon.hs that TyCon has a list of Roles in it, but there doesn't seem to be any machinery available to do this in source haskell.

Thanks