+1. I'd like to have no coercions on domain object side. I'd also go NOT to check types at all for domain objects. This would be defensive programming. Basically this is anima ;)