This package provides core types and functions to work with the LogAction data type which is both simple and powerful. newtype LogAction m msg = LogAction { unLogAction :: msg -> m () } The ideas behind this package are described in the following blog post: co-log: Composable Contravariant Combinatorial Comonadic Configurable Convenient Logging https://kowainik.github.io/posts/2018-09-25-co-log