Given that neither `a` nor `b` are used in the data type, you could also make `Foobar` kind-polymorphic: {-# LANGUAGE PolyKinds #-} data Foobar a b = Foobar You can check that GHC has inferred polymorphic kinds by asking for information in a GHCi prompt: Prelude> :info Foobar data Foobar (a :: k1) (b :: k2) = Foobar 2016-07-26 12:55 GMT+02:00 Ivan Lazar Miljenovic <ivan.miljenovic@gmail.com> :
On 26 July 2016 at 20:36, Michael Roth <list@mroth.net> wrote:
Hi,
if I have:
data Foobar a b = Foobar
it has kind:
* -> * -> *
How can I force the kind to:
(* -> *) -> * -> *
{-# LANGUAGE KindSignatures #-}
data Foobar (a :: * -> *) (b :: *) = Foobar
-- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com http://IvanMiljenovic.wordpress.com _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.