packages feed

pandora-0.3.4: Pandora/Pattern.hs

module Pandora.Pattern (module Exports, (.|..), (.|...), (.|....)) where

import Pandora.Pattern.Object as Exports
import Pandora.Pattern.Transformer as Exports
import Pandora.Pattern.Functor as Exports
import Pandora.Pattern.Category as Exports

import Pandora.Core.Functor (type (:.), type (:=))

infixr 7 .|.., .|..., .|....

(.|..) :: (Category v, Covariant (v a))
	=> v c d -> v a :. v b := c -> v a :. v b := d
f .|.. g = (f .) <$> g

(.|...) :: (Category v, Covariant (v a), Covariant (v b))
	=> v d e -> v a :. v b :. v c := d -> v a :. v b :. v c := e
f .|... g = (f .) <$$> g

(.|....) :: (Category v, Covariant (v a), Covariant (v b), Covariant (v c))
	=> v e f -> v a :. v b :. v c :. v d := e -> v a :. v b :. v c :. v d := f
f .|.... g = (f .) <$$$> g