The following snippet:

--------------------------
#lang typed/racket
(: ** [Real Real -> Real])
(define (** a b)
  (expt a b))
--------------------------

Throws:
unsaved editor:5:2: Type Checker: type mismatch expected: Real given: Number 
in: (expt a b)
  #(67 10)


I believe (because I can’t think of a counterexample) that
(expt Real Real) is never Complex; and therefore expt can be of type
(Real Real -> Real).

First off, is the statement above true?

Is there a technical reason why my example HAS TO fall back to
(Number Number -> Number)? Or is this simply an oversight?

Regards,

Tim

Version: 6.6.0.4--2016-09-08(-/f) [3m].

-- 
Tim Brown CEng MBCS <[email protected]>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                City Computing Limited · www.cityc.co.uk
      City House · Sutton Park Rd · Sutton · Surrey · SM1 2AE · GB
                T:+44 20 8770 2110 · F:+44 20 8770 2130
────────────────────────────────────────────────────────────────────────
City Computing Limited registered in London No:1767817.
Registered Office: City House, Sutton Park Road, Sutton, Surrey, SM1 2AE
VAT No: GB 918 4680 96

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to