The open-witness package

Open witnesses are witnesses that can witness to any type. However, they cannot be constructed, they can only be generated in the IO monad.
See the paper Witnesses and Open Witnesses (http://semantic.org/stuff/Open-Witnesses.pdf).