> The next step is to make this a monad!<p>It already is! Each expression is a simple wrapper around a monad, similar to this datatype:<p>data Expr = Expr (QueryM Term)<p>Where QueryM is the monad that helps build the query and Term is the raw protobuf expression that gets sent to the server.