singletons-2.0: tests/compile-and-dump/Singletons/FunDeps.hs
{-# LANGUAGE FunctionalDependencies #-}
module Singletons.FunDeps where
import Data.Singletons.TH
import Data.Singletons.Prelude
import Data.Singletons.TypeLits
$( singletons [d|
class FD a b | a -> b where
meth :: a -> a
l2r :: a -> b
instance FD Bool Nat where
meth = not
l2r False = 0
l2r True = 1
t1 = meth True
-- t2 = l2r False -- This fails because no FDs in type families
|])