# Frtime unhappy with contracts?

**URL:** <https://racket.discourse.group/t/frtime-unhappy-with-contracts/4341>\
**Category:** General\
**Created:** [August 4, 2026, 8:11pm UTC](https://racket.discourse.group/t/frtime-unhappy-with-contracts/4341 "2026-08-04T20:11:16Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![jbclements](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jbclements/32/11_2.png) [@jbclements](https://racket.discourse.group/u/jbclements)\
**Post date:** [August 4, 2026, 8:11pm UTC](https://racket.discourse.group/t/frtime-unhappy-with-contracts/4341/1 "2026-08-04T20:11:16Z")

</div>

In testing for the 9.3 release, I happened to run this program in the `frtime` language level:

```scheme
(require math/number-theory)

seconds

(build-list (modulo seconds 10) identity)

(+ seconds 1)

(prime? seconds)

```

I was surprised to see a failure:

```scheme
prime?: contract violation
  expected: exact-integer?
  given: #(struct:signal 1785874065 (#<weak-box> #<weak-box> #<weak-box>) #false #<procedure:...frtime/lang-ext.rkt:467:23> 1 #<continuation-mark-set> #<parameterization> ())
  in: the 1st argument of
      (-> exact-integer? any)
  contract from: 
      <pkgs>/math-lib/math/private/number-theory/number-theory.rkt
  blaming: top-level
   (assuming the contract is correct)
  at: <pkgs>/math-lib/math/private/number-theory/number-theory.rkt:192:8

```

Is this just a fact of life with frtime? I'm surprised I haven't seen this error before.

---

<div class="post-metadata">

**Author:** ![soegaard](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/soegaard/32/19_2.png) [@soegaard](https://racket.discourse.group/u/soegaard)\
**Post date:** [August 4, 2026, 8:30pm UTC](https://racket.discourse.group/t/frtime-unhappy-with-contracts/4341/2 "2026-08-04T20:30:15Z")

</div>

> Is this just a fact of life with frtime?

I believe so. The `frtime` language provides lifted versions of many primitives.  
So for example `even?` works out of the box.

To lift `prime?` you need:

```scheme
(require (lifted math/number-theory prime?))

seconds
(prime? seconds)

```

---

<div class="post-metadata">

**Author:** ![jbclements](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jbclements/32/11_2.png) [@jbclements](https://racket.discourse.group/u/jbclements)\
**Post date:** [August 5, 2026, 9:00am UTC](https://racket.discourse.group/t/frtime-unhappy-with-contracts/4341/3 "2026-08-05T09:00:59Z")

</div>

Thank you! I had imagined that a lifting rewriting happened for all applications, my mistake.
