Make arbitrary instances more restrictive
Generate valid ports code
cosmetic: make "infer" more clear with ErrorT