Prelude's code reminds me of a question, the sort of question Microsoft asks you on an interview: If you had to write code to convert ints to roman numerals optimized for speed but with infinite memory, how do you do it? Just store the roman numerals in a table and return the one at the index. Constant runtime