-record(socket, { subject :: gleam@erlang@process:subject(pgl@internal@socket:msg()), host :: binary(), timeout :: integer(), parameters :: gleam@dict:dict(binary(), binary()), send :: fun((pgl@internal@socket:internal_socket(), bitstring()) -> {ok, nil} | {error, pgl@internal:posix_error()}), 'receive' :: fun((pgl@internal@socket:internal_socket(), integer(), integer()) -> {ok, bitstring()} | {error, pgl@internal:posix_error()}), shutdown :: fun((pgl@internal@socket:internal_socket()) -> {ok, nil} | {error, pgl@internal:posix_error()}) }).