<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    <link href="chrome://translator/skin/floatingPanel.css"
      type="text/css" rel="stylesheet">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi all,<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Maybe, this question is very easy. In the following code, I
    try defining a predicate for T2, but I cannot because T1 it is a
    function. <br>
    <br>
    (define-type T1 (Symbol -&gt; Any) )<br>
    (define-type T2 (U Symbol Number T1))<br>
    <br>
    ;(define-predicate T1? Procedure) ;this line is useless<br>
    <br>
    (define-predicate T2? T2)<br>
    <br>
    &gt; Type Checker: Type T2 could not be converted to a contract. in:
    T2<br>
    <br>
    My unsuccessful answer is:<br>
    &nbsp; (define-type T2 (U Symbol Number Procedure))<br>
    <br>
    I do not like it because I lose the relationship between T1 and T2.
    Are there some possibility<br>
    <br>
    Thank in advance,<br>
    Paul <br>
    <div style="bottom: auto; left: 19px; right: auto; top: 255px;
      display: none;" class="translator-theme-default"
      id="translator-floating-panel">
      <div title="Click to translate"
        id="translator-floating-panel-button"></div>
    </div>
  </body>
</html>