Non-working version of @pthariensflame's kind-polymorphic classes (https://github.com/VinylRecords/Vinyl/issues/25#issuecomment-29227867)