From 3821a11d38c3e49165c243f5d1d0d4b8e57d0a88 Mon Sep 17 00:00:00 2001 From: Sergiu Ivanov Date: Tue, 8 Aug 2023 17:22:03 +0200 Subject: [PATCH] Start converting rs to Typed Racket. --- rs.rkt | 12 ++++++++++-- scribblings/rs.scrbl | 27 +++++++++++++++++++++++++-- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/rs.rkt b/rs.rkt index ae111ff..dffa68e 100644 --- a/rs.rkt +++ b/rs.rkt @@ -1,8 +1,16 @@ #lang racket -;;; dds/rs +(module typed typed/racket + (require typed/graph "utils.rkt" "dynamics.rkt") -;;; Definitions for working with reaction systems. + (provide + Species) + + (module+ test + (require typed/rackunit)) + + (define-type Species Symbol) + ) (require graph "utils.rkt" "generic.rkt") diff --git a/scribblings/rs.scrbl b/scribblings/rs.scrbl index b79931a..9fe1de2 100644 --- a/scribblings/rs.scrbl +++ b/scribblings/rs.scrbl @@ -1,14 +1,37 @@ #lang scribble/manual -@(require (for-label racket graph "../rs.rkt")) +@(require scribble/example racket/sandbox + (for-label typed/racket/base + (submod "../rs.rkt" typed))) + +@(define rs-evaluator + (parameterize ([sandbox-output 'string] + [sandbox-error-output 'string] + [sandbox-memory-limit 500]) + (make-evaluator 'typed/racket #:requires '((submod "rs.rkt" typed))))) + +@(define-syntax-rule (ex . args) + (examples #:eval rs-evaluator . args)) + +@(define-syntax-rule (deftypeform . args) + (defform #:kind "type" . args)) + +@(define-syntax-rule (deftype . args) + (defidform #:kind "type" . args)) @title[#:tag "rs"]{dds/rs: Reaction Systems} -@defmodule[dds/rs] +@defmodule[(submod dds/rs typed)] This module defines reaction systems and various tools for working with them. @section[#:tag "rs-basics"]{Basic definitions} +@deftype[Species]{ + +A synonym of @racket[Symbol]. + +} + @section{Org-mode interaction} This section contains some useful primitives for