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

Stability | experimental |

Maintainer | Edward Kmett <ekmett@gmail.com> |

Safe Haskell | Trustworthy |

# Documentation

"I am not a number, I am a *free monad*!"

A

is a variable that may either be "bound" (`Var`

b a`B`

) or "free" (`F`

).

(It is also technically a free monad in the same near-trivial sense as
`Either`

.)

Typeable2 Var | |

Bitraversable Var | |

Bifunctor Var | |

Bifoldable Var | |

Serial2 Var | |

Hashable2 Var | |

Eq2 Var | |

Ord2 Var | |

Show2 Var | |

Read2 Var | |

Monad (Var b) | |

Functor (Var b) | |

Applicative (Var b) | |

Foldable (Var b) | |

Traversable (Var b) | |

Serial b => Serial1 (Var b) | |

Hashable b => Hashable1 (Var b) | |

Eq b => Eq1 (Var b) | |

Ord b => Ord1 (Var b) | |

Show b => Show1 (Var b) | |

Read b => Read1 (Var b) | |

(Eq b, Eq a) => Eq (Var b a) | |

(Data b, Data a) => Data (Var b a) | |

(Ord b, Ord a) => Ord (Var b a) | |

(Read b, Read a) => Read (Var b a) | |

(Show b, Show a) => Show (Var b a) | |

Generic (Var b a) | |

(Binary b, Binary a) => Binary (Var b a) | |

(Serial b, Serial a) => Serial (Var b a) | |

(Serialize b, Serialize a) => Serialize (Var b a) | |

(Hashable b, Hashable a) => Hashable (Var b a) |