# Namespaced function call

a::b()

==>

SurrealQL(FunctionCall(FunctionName,ArgumentList))

# Custom function call

fn::one::two(1, a)

==>

SurrealQL(FunctionCall(FunctionName,ArgumentList(Number(Int),Ident)))

# Rand function

rand(3)

==>

SurrealQL(FunctionCall(FunctionName,ArgumentList(Number(Int))))

# Count function

count(x)

==>

SurrealQL(FunctionCall(FunctionName,ArgumentList(Ident)))

# Versioned function call

some::versioned::function<1.2.3>(a)

==>

SurrealQL(FunctionCall(FunctionName,Version("<",VersionNumber,">"),ArgumentList(Ident)))

# No-argument function call

a::b()

==>

SurrealQL(FunctionCall(FunctionName,ArgumentList))

# Multiple argument function call

string::concat("hello", " ", "world")

==>

SurrealQL(FunctionCall(FunctionName,ArgumentList(String,String,String)))

# Variable function call

$func(1)

==>

SurrealQL(FunctionCall(VariableName,ArgumentList(Number(Int))))
