rollback misguided undecidable instances
refactor: use Haskell type system instead of PropertyS type