+class type signal_type =
+ object
+ method frequency : int
+ method at : time -> value_type
+ method add_memory : int -> unit
+ method add : signal_type -> signal_type
+ method neg : signal_type
+ method sub : signal_type -> signal_type
+ method mul : signal_type -> signal_type
+ method div : signal_type -> signal_type
+ method delay : signal_type -> signal_type
+ method mem : signal_type
+ method vectorize : signal_type -> signal_type
+ method serialize : signal_type
+ method vconcat : signal_type -> signal_type
+ method vpick : signal_type -> signal_type
+ method floor : signal_type
+ method int : signal_type
+ method sin : signal_type
+ method cos : signal_type
+ method atan : signal_type
+ method atan2 : signal_type -> signal_type
+ method sqrt : signal_type
+ method _mod : signal_type -> signal_type
+ method larger : signal_type -> signal_type
+ method smaller : signal_type -> signal_type
+ method rdtable : signal_type -> signal_type -> signal_type
+ method select2 : signal_type -> signal_type -> signal_type
+ method select3 : signal_type -> signal_type -> signal_type -> signal_type
+ method prefix : signal_type -> signal_type
+ end;;
+
+
+class type beam_type =
+ object
+ method get : signal_type array
+ method length : int
+ method sub : int -> int -> beam_type
+ method append : beam_type -> beam_type
+ method matching : int -> beam_type
+ method time : time -> value_type array
+ method output : int -> (int list) * (float array list)
+ end;;
+
+
+class type dimension_type =
+ object
+ method input : int
+ method output : int
+ end;;
+
+
+class type expression_type =
+ object
+ method get_exp : faust_exp
+ method get_dim : dimension_type
+ method get_delay : int
+ method to_string : string
+ method evaluate : beam_type -> beam_type
+ end;;