Module Types


module Types: sig .. end
Data types used everywhere in the code.


type topology_boundary =
| Bounded
| Periodic

type neighbourhood_distance =
| L_one (*Von Neuman, aka Diamond*)
| L_inf (*Moore, aka Box*)
distance used to compute the neighbourhood.
module type Rule = sig .. end
A rule is a cellular automaton rule: given my state and the states of my neighbours, what's my next state; they are implemented in folder rule, like the simple Rule.Cyclic
module type Synchronism = sig .. end
A synchronism defines when and where the rule is applied; they are implemented in folder rule, like the simple Synchronism.Synchronous.
module type Topology = sig .. end
A topology defines the neighborhoud of each cell and how to draw a configuration; they are implemented in folder rule, like the simple Topology.Line
module type Experiment = sig .. end
An experiment is a way to run the CA, measure something on it and display or print it; they are implemented in folder rule, like the simple Experiment.States