Safe Haskell | None |
---|---|
Language | Haskell98 |
- data Writer w a = Writer {}
- data Symbol :: *
- put :: Var k -> v -> Writer `[k :-> v]` ()
- data k :-> v
- type IsSet s = s ~ Nub (Sort s)
- data Set n where
- union :: Unionable s t => Set s -> Set t -> Set (Union s t)
- data Var k where
- type Union s t = Nub (Sort (Append s t))
- type Unionable s t = (Sortable (Append s t), Nubable (Sort (Append s t)))
Documentation
(Show (Var k), Show v) => Show ((:->) k v) | |
Chooser (CmpSymbol j k) => OrdH ((:->) j u) ((:->) k v) | |
(Monoid u, Nubable ((:) * ((:->) k u) s)) => Nubable ((:) * ((:->) k u) ((:) * ((:->) k u) s)) | |
Update ((:) * ((:->) j ((:!) b s)) as) as' => Update ((:) * ((:->) k ((:!) a W)) ((:) * ((:->) j ((:!) b s)) as)) as' | |
Update ((:) * ((:->) k ((:!) a R)) as) as' => Update ((:) * ((:->) k ((:!) a W)) ((:) * ((:->) k ((:!) b R)) as)) as' | |
Update ((:) * ((:->) k ((:!) b R)) as) as' => Update ((:) * ((:->) k ((:!) a s)) ((:) * ((:->) k ((:!) b s)) as)) as' | |
Update ((:) * ((:->) j ((:!) b s)) as) as' => Update ((:) * ((:->) k ((:!) a R)) ((:) * ((:->) j ((:!) b s)) as)) ((:) * ((:->) k ((:!) a R)) as') | |
type Max ((:->) j u) ((:->) k v) = (:->) (Select Symbol j k k j) (Select * j k v u) | |
type Min ((:->) j u) ((:->) k v) = (:->) (Select Symbol j k j k) (Select * j k u v) |