src/Tools/Metis/src/Name.sig
changeset 39353 7f11d833d65b
parent 23510 4521fead5609
parent 39349 2d0a4361c3ef
child 39443 e330437cd22a
equal deleted inserted replaced
39313:41ce0b56d858 39353:7f11d833d65b
     1 (* ========================================================================= *)
     1 (* ========================================================================= *)
     2 (* NAMES                                                                     *)
     2 (* NAMES                                                                     *)
     3 (* Copyright (c) 2004-2006 Joe Hurd, distributed under the BSD License *)
     3 (* Copyright (c) 2004 Joe Hurd, distributed under the BSD License            *)
     4 (* ========================================================================= *)
     4 (* ========================================================================= *)
     5 
     5 
     6 signature Name =
     6 signature Name =
     7 sig
     7 sig
     8 
     8 
     9 type name = string
     9 (* ------------------------------------------------------------------------- *)
       
    10 (* A type of names.                                                          *)
       
    11 (* ------------------------------------------------------------------------- *)
       
    12 
       
    13 type name
       
    14 
       
    15 (* ------------------------------------------------------------------------- *)
       
    16 (* A total ordering.                                                         *)
       
    17 (* ------------------------------------------------------------------------- *)
    10 
    18 
    11 val compare : name * name -> order
    19 val compare : name * name -> order
    12 
    20 
    13 val pp : name Parser.pp
    21 val equal : name -> name -> bool
       
    22 
       
    23 (* ------------------------------------------------------------------------- *)
       
    24 (* Fresh names.                                                              *)
       
    25 (* ------------------------------------------------------------------------- *)
       
    26 
       
    27 val newName : unit -> name
       
    28 
       
    29 val newNames : int -> name list
       
    30 
       
    31 val variantPrime : (name -> bool) -> name -> name
       
    32 
       
    33 val variantNum : (name -> bool) -> name -> name
       
    34 
       
    35 (* ------------------------------------------------------------------------- *)
       
    36 (* Parsing and pretty printing.                                              *)
       
    37 (* ------------------------------------------------------------------------- *)
       
    38 
       
    39 val pp : name Print.pp
       
    40 
       
    41 val toString : name -> string
       
    42 
       
    43 val fromString : string -> name
    14 
    44 
    15 end
    45 end