Your data type GridWidget doesn't have a parameter, yet you use it
like it has one.
> data GridWidget = forall widget. (WidgetClass widget) => GridWidget
> widget
^
|
NB:-------------+
> liftGW :: (GridWidget widget) -> (widget -> t) -> t