Skip to content
This repository
tag: v464
Fetching contributors…

Cannot retrieve contributors at this time

file 70 lines (59 sloc) 2.623 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
(*
Copyright © 2011 MLstate

This file is part of OPA.

OPA is free software: you can redistribute it and/or modify it under the
terms of the GNU Affero General Public License, version 3, as published by
the Free Software Foundation.

OPA is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
more details.

You should have received a copy of the GNU Affero General Public License
along with OPA. If not, see <http://www.gnu.org/licenses/>.
*)
open SurfaceAst

module Pattern :
  sig
    include TraverseInterface.TRAVERSE
      with type 'a t = 'b pat constraint 'a = 'b * _ * _
       and type 'a container = 'b pat constraint 'a = 'b * _ * _
    val get_vars : ?acc:'a list -> 'a pat -> 'a list
    val appears_str : string -> string pat -> bool
    val appears : Ident.t -> Ident.t pat -> bool
  end

module Type :
  sig
    include TraverseInterface.TRAVERSE
      with type 'a t = 'b ty constraint 'a = 'b * _ * _
       and type 'a container = 'b ty constraint 'a = 'b * _ * _
    val get_typenames : 'a ty -> 'a list
    val get_typenames_with_acc : 'a list -> 'a ty -> 'a list
    val get_typenames_from_arrow_type : 'a arrow_t -> 'a list
  end

module Expr :
  sig
    include TraverseInterface.TRAVERSE
      with type 'a t = ('b,'c) expr constraint 'a = 'b * 'c * _
      and type 'a container = ('b,'c) expr constraint 'a = 'b * 'c * _
    val appears_str : string -> (string,_) expr -> bool
    val appears : Ident.t -> (Ident.t,_) expr -> bool
    val used_vars_str : string list -> (string, _) expr -> string list
    val used_vars : Ident.t list -> (Ident.t, _) expr -> Ident.t list
  end

module CodeElt : TraverseInterface.TRAVERSE
  with type 'a t = ('b,'c) expr constraint 'a = 'b * 'c * _
   and type 'a container = ('b,'c) code_elt constraint 'a = 'b * 'c * _

module Code :
  sig
    include TraverseInterface.TRAVERSE
      with type 'a t = ('b,'c) expr constraint 'a = 'b * 'c * _
      and type 'a container = ('b,'c) code constraint 'a = 'b * 'c * _
    val size : (_,_) code -> int
    val length : (_,_) code -> int
  end

module CodeEltTopPattern : TraverseInterface.TRAVERSE
  with type 'a t = 'b pat constraint 'a = 'b * _ * _
   and type 'a container = ('b,'c) code_elt constraint 'a = 'b * 'c * _

module CodeTopPattern : TraverseInterface.TRAVERSE
  with type 'a t = 'b pat constraint 'a = 'b * _ * _
   and type 'a container = ('b,'c) code constraint 'a = 'b * 'c * _
Something went wrong with that request. Please try again.