Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {-# LANGUAGE DuplicateRecordFields #-}
- {-# LANGUAGE KindSignatures #-}
- {-# LANGUAGE DataKinds #-}
- {-# LANGUAGE TypeFamilies #-}
- {-# LANGUAGE StrictData #-}
- {-
- Something very similar to this works on 8.2.2, I have it in a
- (non-free) codebase, but can’t quite minimize it… Hmm.
- It stopped working when I updated that codebase’s compiler to 8.4.3.
- -}
- module Main where
- data AB = A | B
- class SomeClass (ab :: AB) where
- data SomeData ab
- instance SomeClass 'A where
- data SomeData 'A = SomeData'A{someField :: Int} deriving Show
- instance SomeClass 'B where
- data SomeData 'B = SomeData'B{someField :: Int}
- main :: IO ()
- main = print SomeData'A{someField = 5}
Add Comment
Please, Sign In to add comment