Hacker News new | ask | show | jobs
by atnnn 4947 days ago
> The next step is to make this a monad!

It already is! Each expression is a simple wrapper around a monad, similar to this datatype:

data Expr = Expr (QueryM Term)

Where QueryM is the monad that helps build the query and Term is the raw protobuf expression that gets sent to the server.