module moreanimals;

import animals;

import openmethods;
mixin(registerMethods);

class Goat : Prey
{
}

@method
string _meet(Predator, Prey)
{
  return "chase";
}

@method
string _meet(Prey, Predator)
{
  return "run";
}

void mate(virtual!Animal, virtual!Animal);

@method
void _mate(Animal, Animal)
{
}

extern (C) Animal make(string species)
{
  return cast(Animal) Object.factory(species);
}