Safe HaskellSafe

Instances

Documentation

newtype a <~~ b #

Constructors

Xyzzy (b -> (a, a))

Instances

Foo ((<~~) a) #

Methods

foo :: (a <~~ Int) -> a -> a <~~ a #

foo' :: (a <~~ (a <~~ a)) -> Int -> a <~~ (a <~~ Int) #

class Foo f where #

Methods

foo :: f Int -> a -> f a #

foo' :: f (f a) -> Int -> f (f Int) #

Instances

Foo [] #

Methods

foo :: [Int] -> a -> [a] #

foo' :: [[a]] -> Int -> [[Int]] #

Foo Maybe #

Methods

foo :: Maybe Int -> a -> Maybe a #

foo' :: Maybe (Maybe a) -> Int -> Maybe (Maybe Int) #

Foo ((->) a) #

Methods

foo :: (a -> Int) -> a -> a -> a #

foo' :: (a -> a -> a) -> Int -> a -> a -> Int #

Foo (Either a) #

Methods

foo :: Either a Int -> a -> Either a a #

foo' :: Either a (Either a a) -> Int -> Either a (Either a Int) #

(Eq a, Foo f) => Foo ((,) (f a)) #

Methods

foo :: (f a, Int) -> a -> (f a, a) #

foo' :: (f a, (f a, a)) -> Int -> (f a, (f a, Int)) #

Foo ((<~~) a) #

Methods

foo :: (a <~~ Int) -> a -> a <~~ a #

foo' :: (a <~~ (a <~~ a)) -> Int -> a <~~ (a <~~ Int) #

Foo ((,,) a a) #

Methods

foo :: (a, a, Int) -> a -> (a, a, a) #

foo' :: (a, a, (a, a, a)) -> Int -> (a, a, (a, a, Int)) #

Foo (Quux a b) #

Methods

foo :: Quux a b Int -> a -> Quux a b a #

foo' :: Quux a b (Quux a b a) -> Int -> Quux a b (Quux a b Int) #

class Foo f => Bar f a where #

Methods

bar :: f a -> f Bool -> a #

bar' :: f (f a) -> f (f (f b)) #

bar0, bar1 :: (f a, f a) -> (f b, f c) #

Instances

Bar Maybe Bool #

Methods

bar :: Maybe Bool -> Maybe Bool -> Bool #

bar' :: Maybe (Maybe Bool) -> Maybe (Maybe (Maybe b)) #

bar0 :: (Maybe Bool, Maybe Bool) -> (Maybe b, Maybe c) #

bar1 :: (Maybe Bool, Maybe Bool) -> (Maybe b, Maybe c) #

Bar Maybe [a] #

Methods

bar :: Maybe [a] -> Maybe Bool -> [a] #

bar' :: Maybe (Maybe [a]) -> Maybe (Maybe (Maybe b)) #

bar0 :: (Maybe [a], Maybe [a]) -> (Maybe b, Maybe c) #

bar1 :: (Maybe [a], Maybe [a]) -> (Maybe b, Maybe c) #

Bar [] (a, a) #

Methods

bar :: [(a, a)] -> [Bool] -> (a, a) #

bar' :: [[(a, a)]] -> [[[b]]] #

bar0 :: ([(a, a)], [(a, a)]) -> ([b], [c]) #

bar1 :: ([(a, a)], [(a, a)]) -> ([b], [c]) #

Foo f => Bar (Either a) (f a) #

Methods

bar :: Either a (f a) -> Either a Bool -> f a #

bar' :: Either a (Either a (f a)) -> Either a (Either a (Either a b)) #

bar0 :: (Either a (f a), Either a (f a)) -> (Either a b, Either a c) #

bar1 :: (Either a (f a), Either a (f a)) -> (Either a b, Either a c) #

Foo ((,,) a b) => Bar ((,,) a b) (a, b, a) #

Methods

bar :: (a, b, (a, b, a)) -> (a, b, Bool) -> (a, b, a) #

bar' :: (a, b, (a, b, (a, b, a))) -> (a, b, (a, b, (a, b, b))) #

bar0 :: ((a, b, (a, b, a)), (a, b, (a, b, a))) -> ((a, b, b), (a, b, c)) #

bar1 :: ((a, b, (a, b, a)), (a, b, (a, b, a))) -> ((a, b, b), (a, b, c)) #

Bar (Quux a c) (Quux a b c) #

Methods

bar :: Quux a c (Quux a b c) -> Quux a c Bool -> Quux a b c #

bar' :: Quux a c (Quux a c (Quux a b c)) -> Quux a c (Quux a c (Quux a c b)) #

bar0 :: (Quux a c (Quux a b c), Quux a c (Quux a b c)) -> (Quux a c b, Quux a c c) #

bar1 :: (Quux a c (Quux a b c), Quux a c (Quux a b c)) -> (Quux a c b, Quux a c c) #

class Baz a where #

Methods

baz :: a -> (forall a. a -> a) -> (b, forall c. c -> a) -> (b, c) #

baz' :: b -> (forall b. b -> a) -> (forall b. b -> a) -> [(b, a)] #

baz'' :: b -> (forall b. (forall b. b -> a) -> c) -> forall c. c -> b #

Instances

Baz [c] #

Methods

baz :: [c] -> (forall a. a -> a) -> (b, forall a. a -> [c]) -> (b, c) #

baz' :: b -> (forall b. b -> [c]) -> (forall b. b -> [c]) -> [(b, [c])] #

baz'' :: b -> (forall b. (forall a. a -> [c]) -> c) -> forall a. a -> b #

Baz (a -> b) #

Methods

baz :: (a -> b) -> (forall c. c -> c) -> (b, forall c. c -> a -> b) -> (b, c) #

baz' :: b -> (forall c. c -> a -> b) -> (forall c. c -> a -> b) -> [(b, a -> b)] #

baz'' :: b -> (forall c. (forall d. d -> a -> b) -> c) -> forall c. c -> b #

Baz (a, b, c) #

Methods

baz :: (a, b, c) -> (forall d. d -> d) -> (b, forall d. d -> (a, b, c)) -> (b, c) #

baz' :: b -> (forall d. d -> (a, b, c)) -> (forall d. d -> (a, b, c)) -> [(b, (a, b, c))] #

baz'' :: b -> (forall d. (forall e. e -> (a, b, c)) -> c) -> forall d. d -> b #

Baz (Quux a b c) #

Methods

baz :: Quux a b c -> (forall d. d -> d) -> (b, forall d. d -> Quux a b c) -> (b, c) #

baz' :: b -> (forall d. d -> Quux a b c) -> (forall d. d -> Quux a b c) -> [(b, Quux a b c)] #

baz'' :: b -> (forall d. (forall e. e -> Quux a b c) -> c) -> forall d. d -> b #

Baz (a, [b], b, a) #

Methods

baz :: (a, [b], b, a) -> (forall c. c -> c) -> (b, forall c. c -> (a, [b], b, a)) -> (b, c) #

baz' :: b -> (forall c. c -> (a, [b], b, a)) -> (forall c. c -> (a, [b], b, a)) -> [(b, (a, [b], b, a))] #

baz'' :: b -> (forall c. (forall d. d -> (a, [b], b, a)) -> c) -> forall c. c -> b #

data Quux a b c #

Constructors

Qx a
Qux a b
Quux a b c

Instances

Foo (Quux a b) #

Methods

foo :: Quux a b Int -> a -> Quux a b a #

foo' :: Quux a b (Quux a b a) -> Int -> Quux a b (Quux a b Int) #

Bar (Quux a c) (Quux a b c) #

Methods

bar :: Quux a c (Quux a b c) -> Quux a c Bool -> Quux a b c #

bar' :: Quux a c (Quux a c (Quux a b c)) -> Quux a c (Quux a c (Quux a c b)) #

bar0 :: (Quux a c (Quux a b c), Quux a c (Quux a b c)) -> (Quux a c b, Quux a c c) #

bar1 :: (Quux a c (Quux a b c), Quux a c (Quux a b c)) -> (Quux a c b, Quux a c c) #

Baz (Quux a b c) #

Methods

baz :: Quux a b c -> (forall d. d -> d) -> (b, forall d. d -> Quux a b c) -> (b, c) #

baz' :: b -> (forall d. d -> Quux a b c) -> (forall d. d -> Quux a b c) -> [(b, Quux a b c)] #

baz'' :: b -> (forall d. (forall e. e -> Quux a b c) -> c) -> forall d. d -> b #

data Thud Int (Quux a [a] c) #
data Thud Int (Quux a [a] c)

class Norf a b where #

Associated Types

type Plugh a c b #

data Thud a c #

Methods

norf :: Plugh a c b -> a -> (a -> c) -> b #

Instances

Norf Int Bool #

Associated Types

type Plugh Int c Bool :: * #

data Thud Int c :: * #

Methods

norf :: Plugh Int c Bool -> Int -> (Int -> c) -> Bool #

Norf [a] [b] #

Associated Types

type Plugh [a] c [b] :: * #

data Thud [a] c :: * #

Methods

norf :: Plugh [a] c [b] -> [a] -> ([a] -> c) -> [b] #