Quining a Pristine World
Haskell, 132 bytes



q x=if length x==132then putStr x else fail[];main=q$(++)&lt;*&gt;show$"q x=if length x==132then putStr x else fail[];main=q$(++)&lt;*&gt;show$"


Try it online!

This is an extension of the quine

main=putStr$(++)&lt;*&gt;show$"main=putStr$(++)&lt;*&gt;show$"


which works by concatenating the data string with a quoted version (by using show) of itself and printing the result. However, this is not pristine as any characters in the data string can be removed without failing and also the $(++)&lt;*&gt;show$ or (++)&lt;*&gt; part could be dropped without the program breaking.

To fix this, a custom print function q is defined which checks the length of the given string and calls fail if it's shorter than 132. This catches the removing of any sequence from the data string and also the removals of $(++)&lt;*&gt;show$ or (++)&lt;*&gt;, as in both cases the resulting string passed to q is shorter.

In q the number 132 could be shortened to 1, 13, 32 or 2, but in each case again fail is called.

As far as I can tell, the removal of any other substring causes either an syntax or type error, so the program does not even compile in the first place. (Haskell's strict type system comes in handy here.) 

Edit: Thanks to Ørjan Johansen and Shelvacu for pointing out a flaws!