I wish dependent types were more common :(