Problem is different: field name is the problem.
In basetype you have declared it as int and in the extended type you do name:TSwitch = New TSwitch
which is incorrect in 2 different ways:
1) with the declaration of base type field as int
2) with the local declaration of input parameter name which is int as well.
In basetype you have declared it as int and in the extended type you do name:TSwitch = New TSwitch
which is incorrect in 2 different ways:
1) with the declaration of base type field as int
2) with the local declaration of input parameter name which is int as well.