blob: 3a30c65905334504a98d47418231e075643c7292 (
plain)
1
2
3
4
5
6
7
8
9
10
|
:set -XHaskell2010
:set -XRankNTypes -XConstraintKinds -XTypeApplications -XTypeOperators
import Data.Typeable
class Deferrable p where deferEither :: proxy p -> (p => r) -> Either String r
instance (Typeable a, Typeable b) => Deferrable (a ~ b) where deferEither _ _ = undefined
:t deferEither @(_ ~ _)
|