With this approach, you cannot tell whether a parameter is addressable only from the function type. Instead you need the SILValue that will be passed to the call site.
var FullApplySite.singleDirectErrorResult
AST.Type
AST.CanonicalType
SIL.Type
Sequence<Operand>.users(ofType:)
Instruction
SIL/Utils.swift