A series of didactic interpreters with rational types and declarative effects