A Functioan Foundation for CQRS/ES