Initial attempt GADT separation of Pure/IO