Portability | portable |
---|---|

Stability | experimental |

Maintainer | conal@conal.net |

A monoid `Partial`

of partial values. See the [Teaser] and [Solution] blog
posts.

- Teaser
- : http://conal-elliott.blogspot.com/2007/07/type-for-partial-values.html [Solution]: http://conal-elliott.blogspot.com/2007/07/implementing-type-for-partial-values.html

Also defines a `FunAble`

instance, so that `FunA Partial`

is an arrow.

# Partial values

Treat a full value as a partial one. Fully overrides any
"previous" (earlier argument to `mappend`

) partial value.

Force a partial value into a full one, filling in bottom for any missing parts.

pUnElt :: Functor f => PartialX a (f a)Source

Inverse to "element" access, on all elements. A way to inject some
info about every element. For `f`

, consider '[]', `(->) a`

,
`Event`

, etc.

pUnSrc :: PartialX a ((a -> b) -> o)Source

Inject a partial argument-source into a partial function-sink.