Suppose I want to define a new type that takes an int and a string. I know to define it like this:

`data Comp = Comp Int String`

But the problem with this notation is that when I have an instance of this type the instance is in the form of:

`Comp 45 "heloWorld"`

And I don't want that, I want that both these "parameters" of the datatype ( more like entries of a record), I want them separated by a character for example | or # instead of the whitespace. I don't want that character to do anything, it is just a notation I want to use. In this case,
`45#"hii"` 
is what i want instead of 
`45 "hii"`.
How do i need to tweak the definition of the datatype in order to do this? 
I plan to overload operators for this datatype so for example:
`45#"kkk" + 128#"a"` should be a valid operation.