If two components, say A , and B have following defined
A - has an output defined as
# a.cfndsl.rb
Output(:InstanceId) { Value(Ref(:Instance)) }
B - has an input defined as
# b.cfhighlander.rb
Parameters { ComponentParam :InstanceId,'', type: 'String }
If C defines both A and B, output-input auto-wiring does not work. However if :InstanceId is replaced with 'InstanceId' this works.