main = do putStrLn $ fizzbuzz (Proxy :: Proxy 15) print $ fizzbuzzList (Proxy :: Proxy 16) {- > runhaskell TypedFizzBuzz.hs FizzBuzz ["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz","16"] -} {-# LANGUAGE DataKinds, TypeOperators, KindSignatures, TypeFamilies #-} {-# LANGUAGE UndecidableInstances, FlexibleInstances, FlexibleContexts #-} {-# LANGUAGE ScopedTyp