pub fn a(name: String) -> Atom
pub fn against(query: Query(a, b), row: c) -> Result(d, Nil)
pub fn bind(query: Query(a, b), with shape: c) -> Query(a, b)
pub fn filter(
query: Query(a, b),
with condition: c,
) -> Query(a, b)
pub fn map(query: Query(a, b), with shape: c) -> Query(a, b)
pub fn new() -> Query(a, b)
pub fn v(at position: Int) -> Atom
pub fn validate(
query: Query(a, b),
) -> Result(Query(a, b), List(String))