an expression like (as ++ '[]) ++ bs
would be represented as
Fun appendTyCon [Var "as", Fun nilTyCon []
or rather
Fun appendTyCon [Fun starTyCon [], Var "as", Fun nilTyCon [Fun starTyCon []]
because those polymorphic TyCons need to be specialized to the *
kind