0 | module Control.Category.Records.Category
2 | import Control.Category
3 | import Control.Category.Records.Semigroupoid
6 | %prefix_record_projections off
14 | record CategoryR where
15 | constructor MkCategoryR
17 | {auto impl : Category hom}
21 | public export %inline
22 | (.semigroupoidR) : (rec : CategoryR) -> SemigroupoidR
23 | (.semigroupoidR) (MkCategoryR {} {hom}) = MkSemigroupoidR hom {impl = FromCategory}
27 | public export %inline
28 | (.categoryR) : (rec : CategoryR) -> CategoryR
32 | public export %inline
33 | (.id) : (rec : CategoryR) -> {a : _} -> rec.hom a a
34 | (.id) rec = id @{rec.impl}
37 | public export %inline
38 | (.comp) : (rec : CategoryR) -> {a,b,c : _} ->
39 | rec.hom b c -> rec.hom a b -> rec.hom a c
40 | (.comp) rec = (.) @{rec.impl}