In addition to importing external functions we can also import external types. Gleam knows nothing about the runtime representation of these types and so they cannot be pattern matched on, but they can be used with external functions that know how to work with them.
Here is an example of importing a
Queue data type and some functions from
queue module to work with the new
pub external type Queue(a) pub external fn new() -> Queue(a) = "queue" "new" pub external fn length(Queue(a)) -> Int = "queue" "len" pub external fn push(Queue(a), a) -> Queue(a) = "queue" "in"