  We investigate Turing's notion of an A-type artificial neural network. We
study a refinement of Turing's original idea, motivated by work of Teuscher,
Bull, Preen and Copeland. Our A-types can process binary data by accepting and
outputting sequences of binary vectors; hence we can associate a function to an
A-type, and we say the A-type {\em represents} the function. There are two
modes of data processing: clamped and sequential. We describe an evolutionary
algorithm, involving graph-theoretic manipulations of A-types, which searches
for A-types representing a given function. The algorithm uses both mutation and
crossover operators. We implemented the algorithm and applied it to three
benchmark tasks. We found that the algorithm performed much better than a
random search. For two out of the three tasks, the algorithm with crossover
performed better than a mutation-only version.
