blob: de9b450b7c21b5c9bba83e9a1516e413a6a54df9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE QuantifiedConstraints #-}
{-# LANGUAGE UndecidableInstances #-}
module Bug where
data Dict c where
Dict :: c => Dict c
class (a => b) => Implies a b
instance (a => b) => Implies a b
curryC1 :: ((a, b) => c) => Dict (Implies a (Implies b c))
curryC1 = Dict
curryC2 :: Implies (a, b) c => Dict (Implies a (Implies b c))
curryC2 = Dict
|