showArray :: (IsFirstClass a) => TType a -> String
showArray (TTypeArr a (Just s)) =
    "[" ++ show s ++ "]" ++ showArray a
showArray :: (IsFirstClass a) => TType a -> String
showArray (TTypeArr a (Just s)) =
    "[" ++ show s ++ "]" ++ showArray a
showArray (TTypeArr a (Just s)) =
    "[" ++ show s ++ "]" ++ showArray a