In LLVM.Core.CodeGen I find > -- XXX merge with IsArithmetic? > class IsConst a where > constOf :: a -> ConstValue a I do not know, whether all arithmetic types allow (and will allow in future) initialization with constants, however I think that at least IsType should be a superclass of IsConst.