Record types are a common feature in most paradigms.Agda also allows defining records with the coinductive
keyword.Lastly there are the seemingly more exotic co(inductive)data types which are kind of the duals of inductive types, in the sense that they're defined by projections rather than constructors.
What are the differences between all of these? Is one more powerful than the rest?