packages feed

haskell-tools-builtin-refactorings-1.0.1.1: test/ExtensionOrganizerTest/FlexibleInstancesTest/Definitions.hs

{-# LANGUAGE MultiParamTypeClasses,
             TypeOperators
             #-}

module Definitions where

class C1 a where
  f1 :: a -> Bool

class C2 a b where
  f2 :: a -> b -> Bool

class a :?: b where
  h :: a -> b -> Bool

class a :!: b where
  j :: a -> b -> Bool


data T4 a b c d = T4 a b c d
data T3 a b c = T3 a b c
data T2 a b = T2 a b
data T1 a = T1 a
data T0 = T0

type TS4 a b c d = T4 a b c d
type TS3 a b c = T3 a b c
type TS2 a b = T2 a b
type TS1 a = T1 a
type TS0 = T0

data a :-: b      = Minus a b
data a :+: b      = Plus a b
data (a :++: b) c = PPlus a b c

type MinusSyn a b   = a :-: b
type PlusSyn  a b   = a :+: b
type PPlusSyn a b c = (a :++: b) c


type Phantom    a b = [a]
type HomoTuple  a   = (a,a)
type DoubleList a   = [[a]]