hack together rough version outlining: 1) base datatypes; 2) transformer data types; 3) typeclasses; 4) transformer typeclasses; 5) typeclass instances; 6) transformer typeclass instances; 7) parsers