Singletons is a Haskell library. In this context, it is used to emulate dependent types which Haskell does not yet have.