module alloy/paragraphs/Sig
imports
  alloy/Declarations
  alloy/Names
exports
  sorts SigDecl SigExt

context-free syntax
  SigQual* "sig" {Name ","}+ SigExt? "{" {Decl ","}* "}" Block? -> SigDecl {cons("ASigDecl")}

  "extends" Ref -> SigExt {cons("AExtends")}
  "in" {Ref "+"}+ -> SigExt {cons("AIn")}
