]> matita.cs.unibo.it Git - helm.git/blob - helm/software/components/ng_tactics/zipTree.mli
bed576157d099558613c0507d138a455057c13b6
[helm.git] / helm / software / components / ng_tactics / zipTree.mli
1 (*
2     ||M||  This file is part of HELM, an Hypertextual, Electronic        
3     ||A||  Library of Mathematics, developed at the Computer Science     
4     ||T||  Department, University of Bologna, Italy.                     
5     ||I||                                                                
6     ||T||  HELM is free software; you can redistribute it and/or         
7     ||A||  modify it under the terms of the GNU General Public License   
8     \   /  version 2 or (at your option) any later version.      
9      \ /   This software is distributed as is, NO WARRANTY.     
10       V_______________________________________________________________ *)
11
12 (* $Id: nCic.ml 9058 2008-10-13 17:42:30Z tassi $ *)
13
14 type ('s,'g) tree = Node of 's * ('g * ('s,'g) tree) list | Nil 
15 type ('a,'s,'g) position
16
17 val start : ('s,'g) tree -> ('a,'s,'g) position
18
19 val up    : ('a,'s,'g) position -> ('b,'s,'g) position option
20 val down  : ('a,'s,'g) position -> ('b,'s,'g) position option
21 val left  : ('a,'s,'g) position -> ('b,'s,'g) position option
22 val right : ('a,'s,'g) position -> ('b,'s,'g) position option
23
24 val is_top :  ('a,'s,'g) position -> bool
25
26 val root: ('a,'s,'g) position -> ('s,'g) tree
27
28 val get: ('a,'s,'g) position -> 's * 'g
29 val set: 's -> 'g -> ('a,'s,'g) position -> ('a,'s,'g) position
30
31 val inject: ('s,'g) tree -> ('a,'s,'g) position -> ('a,'s,'g) position
32 val eject: ('a,'s,'g) position -> ('s,'g) tree
33
34 val dump: ('g -> string) -> ('s -> string -> Format.formatter -> unit) -> 
35             ('a,'s,'g) position -> Format.formatter -> unit
36
37