Can I specify that an associatedtype is a function?

It's weird because as I said I can duplicate my initializer in different extensions like this, and the compiler accepts it:

struct Container<Call: CallType> {
  let description: String
  let block: Call.Callback
}

extension Container where Call == SyncCall {
  // no problem with @escaping:
  init(_ description: String, executing block: @escaping Call.Callback) {
    self.description = description
    self.block = block
  }
}

extension Container where Call == AsyncCall {
  init(_ description: String, executing block: @escaping Call.Callback) {
    self.description = description
    self.block = block
  }
}