# ¤ compLF, serCompLF, et al

## Types

```compLF :: (F a b, Orientation) -> F c d -> F (Either a c) (Either b d)
serCompLF :: (F a b, Orientation) -> F c a -> F c b
>#+< :: (F a b, Orientation) -> F c d -> F (Either a c) (Either b d)
infixl 9 >#+<
>#==< :: (F a b, Orientation) -> F c a -> F c b
infixl 9 >#==<
data Orientation = Above | Below | RightOf | LeftOf
instance Eq Orientation
instance Ord Orientation
```

## Synopsis

`compLF (f1,orient) f2`

## Description

These combinators connect fudgets like the corresponding combinators without a `#` in the name, but they have extra arguments for specifying layout.

## Arguments

`(f1,orient) :: (F a b, Orientation)`
Left fudget and layout info. `orient` is the placement of `f1` relative to `f2`.
`f2 :: F c d`
Right fudget.

## Example

` (f1,Above)>#+<f2`

## Equalities

```
(>#+<) = compLF
(>#==<) = serCompLF
(f1,Above)>#+<f2 = placerF verticalP        (f1>+<f2)
(f1,Below)>#+<f2 = placerF (revP verticalP) (f1>+<f2)
...
```

Corresponding combinators without layout: compF, serCompF.

Related combinators: listLF, placerF.

Dynamic Layout.