(defun expt (base : int, exp: int) -> int
  ...)


(defun expt ([base : int] [expt : int]) -> int
  ...)


(defun expr ([Number t] | [base : t] [expt : t]) -> t
       


(forall (Number t)
  (lambda ([base t] [exp t] -> t)
    ...))

def expt[T <: Number](base: T, exp: T) -> T =



(lambda ([T <: Number] [base : T] [exp : T] -> T)



(
