2 % (c) The AQUA Project, Glasgow University, 1996
4 \section[Kind]{The @Kind@ datatype}
8 Kind(..), -- Only visible to friends: TcKind
26 = TypeKind -- Any type (incl unboxed types)
27 | BoxedTypeKind -- Any boxed type
28 | UnboxedTypeKind -- Any unboxed type
32 mkArrowKind = ArrowKind
34 mkUnboxedTypeKind = UnboxedTypeKind
35 mkBoxedTypeKind = BoxedTypeKind
37 isSubKindOf :: Kind -> Kind -> Bool
39 BoxedTypeKind `isSubKindOf` TypeKind = True
40 UnboxedTypeKind `isSubKindOf` TypeKind = True
41 kind1 `isSubKindOf` kind2 = kind1 == kind2
43 resultKind :: Kind -> Kind -- Get result from arrow kind
44 resultKind (ArrowKind _ res_kind) = res_kind
45 resultKind other_kind = panic "resultKind"
47 argKind :: Kind -> Kind -- Get argument from arrow kind
48 argKind (ArrowKind arg_kind _) = arg_kind
49 argKind other_kind = panic "argKind"