Yes of course you can. The only important thing is that you (always) need a name for your data constructor:
data <name> <para0> <param1> ... = <constructor> <arg0> <arg1> <arg2> ...
So, for our example, it becomes
data Something ab = Constructor (a -> b) Something1 Something2
source share