Here you can primarily find functions for dealing with the "patp" and "patq" phonetic bases used by Urbit. The @p encoding is used for naming ships, while the @q encoding is used for arbitrary data; they each uniquely represent an underlying natural number (or atom) in a memorable and pronounceable fashion.
The @p encoding is an obfuscated representation of an underlying atom, in particular, hence the "ob" in the library's name.
Urbit.Ob module exposes two families of functions,
fromPatp, and then
fromPatq, for converting between
representations. You can also render a
Patq value as
renderPatq functions, or parse them from
Since @p values represent ships, some utilities for dealing with ships are
also exposed. The
sein functions are useful for determining a
ship's class and (default) parent, respectively.
Some quick examples:
import qualified Urbit.Ob as Ob
let nidsut = Ob.patp 15663360
let marzod = Ob.patq (Ob.fromPatp nidsut)