diff --git a/src/codeBackend.ml b/src/codeBackend.ml index 14091a8c09e2ad2ad3be07a12f36f9680dcd6538..5ecabd5381903d44d52f6e6f89e2af40663ff8d2 100644 --- a/src/codeBackend.ml +++ b/src/codeBackend.ml @@ -295,22 +295,6 @@ let assertnoerror : pattern * expr = PUnit, EApp (EVar "assert", [ EApp (EVar "not", [ ERecordAccess (EVar env, ferror) ]) ]) -let etuple = function - | [] -> - assert false - | [ e ] -> - e - | es -> - ETuple es - -let ptuple = function - | [] -> - assert false - | [ p ] -> - p - | ps -> - PTuple ps - let trace (format : string) (args : expr list) : (pattern * expr) list = if Settings.trace then [ PUnit, EApp (EVar "Printf.fprintf", (EVar "stderr") :: (EStringConst (format ^"\n%!")) :: args) ] diff --git a/src/codeBits.ml b/src/codeBits.ml index e4c0617b2c0f491b5b98f5740c21b55aead0293e..ed6e74daf3ab29566b49d5e573f380a041b793a4 100644 --- a/src/codeBits.ml +++ b/src/codeBits.ml @@ -16,6 +16,24 @@ open IL +(* Tuples. *) + +let etuple = function + | [] -> + EUnit + | [ e ] -> + e + | es -> + ETuple es + +let ptuple = function + | [] -> + PUnit + | [ p ] -> + p + | ps -> + PTuple ps + (* A list subject to a condition. *) let listif condition xs = diff --git a/src/codeBits.mli b/src/codeBits.mli index d237dcff2a6ec9a731458255202b4d7068263f44..479124fae52fb17a41dd34ef11f7276d5b1d8835 100644 --- a/src/codeBits.mli +++ b/src/codeBits.mli @@ -16,6 +16,11 @@ open IL +(* Tuples. *) + +val etuple: expr list -> expr +val ptuple: pattern list -> pattern + (* A list subject to a condition. (Be careful, though: the list is of course constructed even if the condition is false.) *)