# model_impl

## description

    some_mod description

The model description contains a detailed enumeration of the `members` of the model in sub-lists of `layers`, `connections`, `outputs` (observers) and `others`. There is also a binary flag `Stochastic?` indicating if the same input produces different output on different occasions.

## add

    some_mod add obj...

The object(s) `obj` is added to model `some_mod` in an appropriate slot. In many cases, objects are added to the current default model on creation.

## remove

    some_mod remove obj...

The object(s) `obj` are removed from the model `some_mod`.

## list

    some_mod list

Emit the object list as in description

## step

    some_mod step

Attempt to advance one layer in step one time index. Using this directly outside of a trial is not advisable.

## analyze

    some_mod analyze

Emit an analysis of the relationships among layers in the model. This includes a list of `layers`, each with a `depth` and `breadth` in the connection tree when feedback connections are ignored. `feedforward connections` identified are listed.

## parameters

    some_mod parameters

Return the dataframe object holding the parameters of the model.

## define_input

    some_mod define_input name in_rep in_layer

Indicate that `some_mod` accepts an input that meets the conventions of `name` (e.g., “orthographic” which is used by the trials for lexical decision, etc.) by clamping the layer `in_layer` as the input layer. The conventionally formatted input should be treated as having representation `in_rep` for the purposes of converting input to the representation of `in_layer`.

## define_output

    some_mod define_output name out_obs

Indicate that `some_mod` simulates the response behaviour indicated by the conventional name `name` (e.g. “lexicaldecision” for lexical decisions made in a variety of different trial types), and the response may be detected by polling the observer `out_obs`. addsetting

    some_mod add_setting name value...

Add a setting to the model `some_mod` that is named `name` and is valued (and has as default) `value`. The type will be string (non-string settings should have their type changed afterwards); the comment will be the same as the name (this can also be changed later).

## setting

    some_mod setting name value...

Change a setting of the model `some_mod` that is named `name` to be valued `value`.

## add_script

    some_mod add_script filename...

Add the script `filename` to the list of scripts that form the model.

## stage

    some_mod stage number

Include yet-to-be-included-scripts up to script number `number` (0-indexed); all model settings are registered as `$name=value` macro variables during this process.

    some_mod stage

Include all yet-to-be-included scripts, as above.

## list_settings

    some_mod list_settings

Emit the settings in structured format.

## change_setting_type

    some_mod change_setting_type setting type

Change the type listed for `some_mod`'s setting `setting` to be `type`.

## change_setting_group

    some_mod change_setting_group setting group

Change the grouping listed for `some_mod`'s setting `setting` to be `group`.

## change_setting_comment

    some_mod change_setting_comment setting comment...

Change the comment listed for `some_mod`'s setting `setting` to be `comment`.