(define (Generator:module-initialize module-name enter-module find-module eval-env) (define path-real (Pident (ident-create "real"))) (define real-type (Tcon (Tpath path-real) '())) (define path-sigfun (Pdot (Pident (ident-create "Signal")) "sigfun")) (define sigfun-type (Tcon (Tpath path-sigfun) '())) (define path-diagram (Pdot (Pident (ident-create "Diagram")) "diagram")) (define diagram-type (Tcon (Tpath path-diagram) '())) (define-values (type-variables reset-type-variables find-type-variable instance typerepr begin-def end-def newvar generalize make-deftype make-valtype make-kind binop ternop path-star path-list path-arrow star-type list-type arrow-type label-type string-type bot-type ) (core-utils)) (let ( (sig (append (map (lambda (name) (Value_sig (ident-create name) (make-valtype '() (arrow-type sigfun-type (arrow-type sigfun-type (arrow-type sigfun-type diagram-type)))))) '("poisson")) )) (struct (append (map (lambda (name) (datacon 'generator name 3)) '(poisson) ) )) ) (let* ((modname (ident-create module-name)) (msig (Signature sig)) (mdef (Module_def modname (Structure struct)))) (enter-module modname msig) (eval-env (mod-eval-cbv (eval-env) (list mdef))) ) ))