{"size": 705, "ext": "scrbl", "max_stars_repo_path": "sham-doc/sham/scribblings/reference.scrbl", "max_stars_repo_name": "spdegabrielle/sham", "max_stars_repo_stars_event_min_datetime": "2017-06-27T18:32:39.000Z", "max_stars_repo_stars_event_max_datetime": "2022-03-10T23:11:11.000Z", "max_issues_repo_path": "sham-doc/sham/scribblings/reference.scrbl", "max_issues_repo_name": "spdegabrielle/sham", "max_issues_repo_issues_event_min_datetime": "2017-08-22T18:52:39.000Z", "max_issues_repo_issues_event_max_datetime": "2022-02-13T16:52:07.000Z", "max_forks_repo_path": "sham-doc/sham/scribblings/reference.scrbl", "max_forks_repo_name": "spdegabrielle/sham", "max_forks_repo_forks_event_min_datetime": "2019-02-12T15:47:03.000Z", "max_forks_repo_forks_event_max_datetime": "2022-03-13T16:42:34.000Z"}
{"max_stars_count": 56, "max_issues_count": 9, "max_forks_count": 6, "avg_line_length": 26.1111111111, "max_line_length": 85, "alphanum_fraction": 0.6496453901}
#lang scribble/doc

@(require scribble/manual)

@title{The Sham Reference}

@defstruct*[sham:def ([info anything?] [id sham:ast:terminal:sym?])]
@defstruct*[(sham:def:module sham:def) ([defs (list? sham:def?)])]
@(racketgrammar*
  [sham:def
    sham:def:module
    sham:def:function
    sham:def:type
    sham:def:global
    sham:def:global-string]
  [sham:def:module (info sham:def ...)]
  [sham:def:function ((sham:ast:type sham:ast:type) ... sham:ast:type sham:ast:stmt)]
  [def
    (sham:def:module def ...)
    (sham:def:function ((arg-ids arg-types) ... ret-type body-stmt))]
  [arg-ids terminal.sym]
  [arg-types type]
  [type
   (internal)
   (ref terminal.sym)
   (struct ((fields types) ...))])
