Instances: Applicative, HasId1
Added funny instances and constraints