aboutsummaryrefslogblamecommitdiff
path: root/sucl/trd.dcl
blob: 09b2467fccd22c634f8c68b188e4e251135c29c6 (plain) (tree)
1
2
3
4
                     
       












                                                                      
                                       



                   
definition module trd

// $Id$

from rule import Rule
from graph import Node
from StdOverloaded import ==

/*
`Ruletype theap symtype rule' determines the type of `rule'.
`Theap' must be an endless supply of type variables.
`Symtype' associates type rules with the symbols that occur in `rule'.

If typing does not succeed, the function aborts.
*/

ruletype
 :: .[tvar]
    ((Node sym var) -> Rule tsym trvar)
    (Rule sym var)
 -> .Rule tsym tvar
 |  == var
 &  == tsym
 &  == tvar
 &  == trvar