[plt-scheme] possible bug? contracts and chains of module provides

From: Danny Yoo (dyoo at cs.wpi.edu)
Date: Sat Mar 1 00:47:04 EST 2008

I'm running into a small issue with provide and structures.

Say that I have three modules: m1.ss, m2.ss, and m3.ss:

##########################################
## m1.ss
#lang scheme/base
(require scheme/contract)
(define-struct repair () #:transparent)
(provide/contract [struct repair ()])


## m2.ss
#lang scheme/base
(require "m1.ss" scheme/contract)
(provide/contract [struct repair ()])


## m3.ss
#lang scheme/base
(require "m2.ss")
(define (make-a-repair)
   (make-repair))
##########################################


I'm running into a compile-time error when compiling m3:

#############################################################
m3.ss:4:3: expand: unbound variable in module in: make-repair
#############################################################

This is a little surprising to me.  Am I doing something wrong here by 
trying to reprovide the structure through a provide/contract?  Thanks!


Posted on the users mailing list.