# .tgt.docexample.list_of_integers

## Name

  ## list_of_integers

## Description

  A kind with no formal properties. In this example, I am not specifying anything about this kind. It is to be understood from its name and context what it means. More specifications can be added later as a system description evolves.

# .tgt.docexample.example_kind

## Name

  ## example_kind

## Synopsis

  Methods
    m_noargs()
    m_returns() -> example_kind
    m_one(a`:` int+)
    m_opt( [a`:` int+ [b`:` string+]])
    m_alt( alt:[a`:` int+ or a`:` string+ or a`:` list+])
    m_repeat( 0..*:a`:` int+ 2..4:b`:` string+)
    m_draw_keywords( draw:[`a` = int+ , `b` = int+ , `c` = string+])
    range( alt:[stop`:` int+ or seq:[start`:` int+ , stop`:` int+ , [step`:` int+]]]) -> list_of_integers
  Attribute
    a_nokind`:` anything

## Description

  A kind specifying some example attributes and methods.

## Methods

  m_noargs()
    A method that takes no arguments, and returns an unspecified kind.
  m_returns() -> example_kind
    A method which returns objects of kind example_kind again.
  m_one(a`:` int+)
    A method with one argument.
    Argument
      a`:` int+
        A positional argument of kind int+. The int+ kind is a so called superkind because an API with this specification, is expected to accept values according to the specification of int+, but it is allowed to accept other kinds of arguments as well. A compatible new specification could add these alternative kinds of arguments as allowed arguments, but it would still have to accept the int+ kind of argument.
    Note
      The + in the int+ name is a convention to indicate that it is a superkind.
    Note
      The name of the argument, a, does not mean that it can be specified as a keyword argument with that name. It is only when keyword arguments are specifically specified that they are actually keyword arguments.
  m_opt( [a`:` int+ [b`:` string+]])
    A method with optional arguments. Square brackets without a preceding modifier means that the contents is optional. So in this case, either no argument must be given, or if one argument is given it is a, or if two arguments are given, it is a and b in that order.
  m_alt( alt:[a`:` int+ or a`:` string+ or a`:` list+])
    A method with alternative arguments. An alt: before the bracket is a modifier that means that there is a choice of alternatives. The argument is required and should be either an int+, string+ or list+.
    Argument
      a`:` int+
        Description for an int argument.
      a`:` string+
        Description for a string argument.
      a`:` list+
        Description for a list argument.
  m_repeat( 0..*:a`:` int+ 2..4:b`:` string+)
    A method with repeated arguments. A modifier m..n: before the argument, where m and n are integers, means an argument that may be repeated at least m times and at most n times. Instead of n, * may be specified and means any number of times.
    Arguments
      a`:` int+
        This argument may be repeated any number of times as long as it is of of kind int+.
      b`:` string+
        The final arguments must be of kind string+ and be repeated 2, 3 or 4 times.
  m_draw_keywords( draw:[`a` = int+ , `b` = int+ , `c` = string+])
    A method with optional keyword arguments.
    The modifier draw: means to 'draw' any combination of arguments from within the brackets. Keyword arguments by them self would not be optional, but would be mandatory, in the current specification system.
  range( alt:[stop`:` int+ or seq:[start`:` int+ , stop`:` int+ , [step`:` int+]]]) -> list_of_integers
    A method combining different argument specifications.
    The modifier seq means arguments that are specified by the sequence of arguments within the following brackets.

    Create a range of numbers.

    Arguments
      start`:` int+
        The first value of the range.
        Default: 0
          Starts with first value.
      stop`:` int+
        The value just beyond the last value of the range.
      step`:` int+
        Positive or negative, steps values up or down.
        Default: 1
    Returns a list containing an arithmetic progression of integers.

## Attribute

  a_nokind`:` anything
    An attribute named a_nokind, with unspecified kind.

Generated by GSL-HTML 0.1.5 on Tue Jun 23 16:15:55 2009