open Sexplib.Std type attr_value = string * Drl.Ast.value [@@deriving sexp] type statement = | InsertTuple of { relation: string; attributes: attr_value list } | InsertTuples of { relation: string; tuples: attr_value list list } | DeleteTuple of { relation: string; attributes: attr_value list } | Assign of { target: string; body: Drl.Ast.query } | InsertFrom of { target: string; source: Drl.Ast.query } | DeleteWhere of { target: string; predicate: Drl.Ast.query } [@@deriving sexp]