The package defines the following types which map directly to Arb types with the corresponding name. In most cases you should not use these types directly but use the types from the High level interface.

For each low-level type there is a union of types that can be interpreted as the low-level type. These are the types that can be given directly as arguments to the low-level methods. Below you find these union-types.

MagLike = Union{Mag,MagRef,mag_struct,Ptr{mag_struct}}
ArfLike = Union{Arf,ArfRef,arf_struct,Ptr{arf_struct}}}
ArbLike = Union{Arb,ArbRef,arb_struct,Ptr{arb_struct}}}
AcbLike = Union{Acb,AcbRef,acb_struct,Ptr{acb_struct}}}

Note that the show method is overloaded for these union types, this is to make method declarations easier to read in the REPL. As an example we can print the methods for Arblib.sin! and we see that it prints ArbLike instead of the much longer Union{Ptr{Arblib.arb_struct}, Arb, ArbRef, Arblib.arb_struct}.

julia> using Arblib
julia> methods(Arblib.sin!)# 4 methods for generic function "sin!" from Arblib: [1] sin!(s::AcbLike, z::AcbLike; prec) @ ~/.julia/packages/Arblib/G8AGm/src/ArbCall/ArbFunction.jl:176 [2] sin!(s::AcbLike, z::AcbLike, prec::Integer) @ ~/.julia/packages/Arblib/G8AGm/src/ArbCall/ArbFunction.jl:152 [3] sin!(s::ArbLike, x::ArbLike; prec) @ ~/.julia/packages/Arblib/G8AGm/src/ArbCall/ArbFunction.jl:176 [4] sin!(s::ArbLike, x::ArbLike, prec::Integer) @ ~/.julia/packages/Arblib/G8AGm/src/ArbCall/ArbFunction.jl:152