1{-# LANGUAGE PolyKinds, TypeFamilies, DataKinds, KindSignatures,
2    TypeOperators, UndecidableInstances #-}
3
4{-# LANGUAGE RankNTypes, LiberalTypeSynonyms, EmptyDataDecls #-}
5
6-- | A prelude for type-level programming with type families
7
8module Prelude.Type.Families where
9
10-- >>> T :: T ((I 4) `Minus` (I 7))
11-- -3
12type family (a :: k) `Minus` (b :: k) :: k
13type instance a `Minus` b = a + Negate b
14
15