Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the constraint kinds syntax for GHC 7.4.1?

I'm getting an error that Constraint is not in scope, when I try to write a simple example,

{-# LANGUAGE UndecidableInstances,
            MultiParamTypeClasses,
            KindSignatures,
            Rank2Types,
            ConstraintKinds,
            FlexibleInstances,
            OverlappingInstances,
            TypeFamilies #-}

type family A a :: Constraint

The error is,

> ghci test.hs
[1 of 1] Compiling Main             ( test.hs, interpreted )

test.hs:10:20: Not in scope: type constructor or class `Constraint'
Failed, modules loaded: none.

Constraint synonyms seem to work as expected,

type ShowOrd a = (Ord a, Show a)

Thanks in advance.

like image 599
gatoatigrado Avatar asked Feb 26 '12 04:02

gatoatigrado


1 Answers

Your error appears to be caused by Constraint being, unsurprisingly, not in scope. You'll want to import it from GHC.Prim or from GHC.Exts.

It seems a bit odd that enabling ConstraintKinds doesn't bring it into scope automatically, as it does in a 7.3.2 snapshot build I had lying around, but there you go.

like image 177
C. A. McCann Avatar answered Nov 19 '22 21:11

C. A. McCann