From the Inform Designer's Manual:

    Copyright on Inform, the program and its source code, its example games
    and documentation (including this book) is retained by Graham Nelson,
    who asserts the moral right to be identified as the author under the
    Copyrights, Designs and Patents Act 1988.  Having said this, I am happy
    for it to be freely distributed to anybody who wants a copy, provided
    that: (a) distributed copies are not substantially different from those
    archived by the author, (b) this and other copyright messages are
    always retained in full, and (c) no profit is involved.  (Exceptions to
    these rules must be negotiated directly with the author.)  However, a
    story file produced with the Inform compiler (and libraries) then
    belongs to its author, and may be sold for profit if desired, provided
    that its game banner contains the information that it was compiled by
    Inform, and the Inform version number.
