-- Is this a primitive (i.e. non-record-like) type.  A key issue here
-- is that this includes constants types; otherwise this is equivalent
-- to is_builtin below.
is_primitive :: Rec -> Bool
is_primitive Primitive {} = True
is_primitive :: Rec -> Bool
is_primitive Primitive {} = True
is_primitive Primitive {} = True