summaryrefslogtreecommitdiff
path: root/testsuite/tests/typecheck/should_compile/T12923_2.hs
blob: 573abc448b1109be4c8275ee3e9417b2518ba4fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{-# LANGUAGE ExtendedDefaultRules #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE KindSignatures #-}

module T12924 where

import GHC.TypeLits

data A (b :: [Symbol]) = A deriving Show

-- Test that ExtendedDefaultRules defaults multiparameter typeclasses with only
-- one parameter of kind Type.
class Works a (b :: [Symbol]) where
   works :: a -> A b

instance Works Integer a where
   works _ = A

main :: IO ()
main = print (addA (works 5) (works 10)) -- :: A '[])

-- | Note argument types aren't concrete
addA :: A a -> A a -> A '[]
addA A A = A