Introduced the TemplateIO type class for automatic generating simulation monads.