public SubUnit GMapT <A>(MkT <A> lf) { Func <Dept, SubUnit> fd = d => new SubUnit(lf.Apply(d)); Func <Employee, SubUnit> fe = e => new SubUnit(lf.Apply(e)); return(Match(fd, fe)); }
public Dept GMapT <A>(MkT <A> lf) { return(new Dept(lf.Apply(Name), lf.Apply(Manager), Units.Select(u => lf.Apply(u)).ToArray())); }
public Parent GMapT <A>(MkT <A> lf) { return(new Parent(lf.Apply(_child))); }
public Company GMapT <A>(MkT <A> lf) { return(new Company(Departments.Select(d => lf.Apply(d)).ToArray())); }
public new Manager GMapT <A>(MkT <A> lf) { return(new Manager(lf.Apply(Salary), lf.Apply(Person))); }
public Employee GMapT <A>(MkT <A> lf) { return(new Employee(lf.Apply(Salary), lf.Apply(Person))); }
public Person GMapT <A>(MkT <A> lf) { return(new Person(lf.Apply(Address), lf.Apply(Name))); }
public Child GMapT <A>(MkT <A> lf) { return(new Child(lf.Apply(_grandchild))); }