{-# LANGUAGE GADTs, KindSignatures, RankNTypes #-}
data Expr :: * -> * where
Num :: Int -> Expr Int
Bool :: Bool -> Expr Bool
Add :: Expr Int -> Expr Int -> Expr Int
Cond :: forall a. Expr Bool -> Expr a -> Expr a -> Expr a
the type reported for Num is
ghc-prim:GHC.Prim.~# * ($a) Int -> Int -> Expr ($a)
which is technically accurate but not very readable. Awaiting prioritization before trying to fix this (@snoyberg?).
Given
the type reported for
Num
iswhich is technically accurate but not very readable. Awaiting prioritization before trying to fix this (@snoyberg?).