seq -> force

Max Bolingbroke batterseapower at
Sun Jun 5 16:59:02 CEST 2011

On 5 June 2011 12:01, Henning Thielemann <lemming at> wrote:
> Is there a type class for generating the constructor independently from the
> input, as in:
>  force ~(Cons x) = Cons x

This is related to eta expansion. I don't think there is a type class
for this in the standard libraries.

As John pointed out it only makes sense for unary data types,
functions and newtypes over those things.

An interesting restriction is that you apparently cannot define
"force" (what I would call "eta") for unary data constructors with
*existential* type variables without using unsafeCoerce.


More information about the Libraries mailing list