Phantom

copy

template

(Fn [(Ref (Phantom a) b)] (Phantom a))

copies a Phantom.

delete

template

(Fn [(Phantom a)] ())

deletes a Phantom. Should usually not be called manually.

ensure

defn

(Fn [a, (Phantom a)] a)

                        (ensure a p)
                    

is a function that takes anything and a Phantom, ensuring that the type contained by the Phantom and the type of the first parameter match.

init

template

(Fn [] (Phantom a))

creates a Phantom.

prn

template

(Fn [(Ref (Phantom a) b)] String)

converts a Phantom to a string.

str

template

(Fn [(Ref (Phantom a) b)] String)

converts a Phantom to a string.