Quick notes on how the fallback
pseudo-type is used in cljd (ClojureDart).
Like cljs, cljd is built on protocols. Like in clj, each protocol is backed by an interface for the fast path. Let's call this interface the direct interface.
Cljd protocols are also backed by a second interface used for extensions to 3rd-party classes. Let's call this interface the extension interface.
Protocols are reified as instances of an IProtocol interface:
// emitted code