Description
With the current implementation of Maybe, it requires that the value is an AnyRef, which ends up boxing/unboxing primitive types. We either need to change how Maybe works so that it doesn't box on primitives, or create a new Maybe type that is specialized for primitives to not require boxing.
Additionally, this should have a toString method that allows us to print "(unknown)" or something similar for the Nope type to minimize allocations and evaluations of of strings.