sop-core: "data NP (a :: k -> Type) (b :: [k]) where ..." mine: "data NP (xs :: [Type]) where ..." it turns out that "k -> Type" was helpful after all, despite making things a bit more verbose when working with it.