toward type norm rules for ADTs