The type section stores function signatures. Functions reference type indices, so repeated signatures can be shared.

wasm
(type $binary_i32 (func (param i32 i32) (result i32)))
(func $add (type $binary_i32)
  local.get 0
  local.get 1
  i32.add)