dive into monads. libmonad integration