Data Types a la Carte in Idris