public Tree<a> : Functor<a>
{
public a Val { get; set; }
public Tree<b>Tree<a> Left { get; set; }
public Tree<a> Right { get; set; }
public Functor<b> fmap<b>(Func<a,b> f)
{
return new Tree<b>
{
Val = f a(val),
Left = Left.fmap(f);
Right = Right.fmap(f);
};
}
}