134d39a58a43c56c176d9786ad2f6df2302542c6
[nt-coerce.git] / test.hs
1 {-# OPTIONS_GHC -fplugin GHC.NT.Plugin #-}
2
3 import GHC.NT
4
5 newtype Age = Age Int deriving Show
6
7 ageNT :: NT Age Int
8 ageNT = createNT
9
10 newtype MyList a = MyList [a] deriving Show
11
12 myListNT :: NT (MyList a) [a]
13 myListNT = createNT
14
15
16 main = do
17     let n = 1 :: Int
18     let a = coerce (sym ageNT) 1
19     let l1 = [a]
20     let l2 = coerce (listNT ageNT) l1
21     let l3 = coerce (sym myListNT) l2
22     print a
23     print l2
24     print l3
25