You can get this information through the Data.Data module. There are two typeclasses which can be (have to be, I believe) derived for your data type, Data and Typeable. The Data class lets you access a representation of your type including type constructors.
To set this up, you need to import Data.Data and enable the DeriveDataTypeable extension:
{-# LANGUAGE DeriveDataTypeable #-}
import Data.Data
data Codes = A0100A | A0500A deriving (Show, Data, Typeable)
Now you can get a representation of the type:
λ> dataTypeOf (undefined :: Codes)
DataType {tycon = "Main.Codes", datarep = AlgRep [A0100A,A0500A]}
Since your type is an algebraic data type (AlgRep), the DataRep contains its constructors, which you can inspect with functions from the Data.Data module.