holly cow, a type-system is something soooo hard to make