Slide 25
Slide 25 text
instance tag1FromTag2 :: (Tag2 t, Typeable a) => Tag1 (t a) where
tag1 = proxy1FromTag2
instance tag0FromTag1 :: (Tag1 t, Typeable a) => Tag0 (t a) where
tag0 = proxy0FromTag1
…
foreign import proxy1FromTag2
:: forall t a. Tag2 t => Typeable a => Proxy1 (t a)
foreign import proxy0FromTag1
:: forall t a. Tag1 t => Typeable a => Proxy0 (t a)
…
TAG CHAINING
A -> B -> [A,B]
[A,B] -> C -> [A,B,C]