I am answering my question with information received from dfeuer and user2407038 comments.
It turns out my code violated the saturation requirement. I did not find an error due to strange behavior (error?) :kind! in ghci. But writing the type in the hs file alone leads to a compilation error.
TyCon1 does not belong to type families, but for flowing around regular type constructors, such as Maybe , which have no problems with unifying type variables. type Foo = Map (TyCon1 Maybe) '[Char,Int] works fine, for example.
For type families, we need to define a special helper type for each of them, and then define an Apply instance for the type. Like this:
data FlipSym :: TyFun * * -> * type instance Apply FlipSym x = Flip x type Boo = Map FlipSym '[Char,Int]
Note that in this way, the Flip type family is not combined with any type variable.
danidiaz
source share