From 824f2987d47e87d58ee2a4a96d7be417aad6aeab Mon Sep 17 00:00:00 2001 From: Sébastien Dailly Date: Wed, 31 Jan 2018 13:20:20 +0100 Subject: API refactoring : made the GADT abstract, provide contructor for each case, and deported the expression with evaluation with module functors --- src/expressions/sym_expr.ml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 src/expressions/sym_expr.ml (limited to 'src/expressions/sym_expr.ml') diff --git a/src/expressions/sym_expr.ml b/src/expressions/sym_expr.ml new file mode 100755 index 0000000..5ff828e --- /dev/null +++ b/src/expressions/sym_expr.ml @@ -0,0 +1,31 @@ +module type SYM_EXPR = sig + + module T:Sym_type.SYM_TYPE + + module R:Sym_ref.SYM_REF + + type t + + type repr + + type obs + + val value : 'a T.t -> t -> repr + + val ref : 'a R.t -> t -> repr + + val call0 : UTF8.t -> t -> repr + + val call1 : UTF8.t -> repr -> t -> repr + + val call2 : UTF8.t -> repr -> repr -> t -> repr + + val call3 : UTF8.t -> repr -> repr -> repr -> t -> repr + + val callN: UTF8.t -> repr list -> t -> repr + + val expression : repr -> t -> repr + + val observe : repr -> obs + +end -- cgit v1.2.3