aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux/abstract/algebra.lux
blob: bee4b394138edc56e9420d287547b2851a74cf39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(.require
 [library
  [lux (.except)
   [control
    [functor (.only Fix)]]]])

(type: .public (Algebra f a)
  (-> (f a) a))

(type: .public (CoAlgebra f a)
  (-> a (f a)))

(type: .public (RAlgebra f a)
  (-> (f (Tuple (Fix f) a)) a))

(type: .public (RCoAlgebra f a)
  (-> a (f (Or (Fix f) a))))