Not really a beginner. I have been practising Julia for a while and gone over couple of decent books. We actually discussed this coding style once (passing types rather than using type parameters).
Then, I might be confused by the documentation, e.g.
space = GridSpaceSingle((10, 10); periodic = false)
...
@agent SchellingAgent GridAgent{2} begin
mood::Bool # whether the agent is happy in its position. (true = happy)
group::Int # The group of the agent, determines mood as it interacts with neighbors
end
...
schelling = ABM(SchellingAgent, space; properties)
The first argument (SchellingAgent) is a type.
The argument space looks like instance of a SpaceType.