add HaskXXXXCategory, generalized arrows, and reifications
[coq-hetmet.git] / src / GeneralizedArrow.v
diff --git a/src/GeneralizedArrow.v b/src/GeneralizedArrow.v
new file mode 100644 (file)
index 0000000..f246567
--- /dev/null
@@ -0,0 +1,35 @@
+(*********************************************************************************************************************************)
+(* Generalized Arrow:                                                                                                            *)
+(*                                                                                                                               *)
+(*   A generalized arrow is a monoidal functor from an enriching category to an enriched category.                               *)
+(*                                                                                                                               *)
+(*********************************************************************************************************************************)
+
+Generalizable All Variables.
+Require Import Preamble.
+Require Import General.
+Require Import Categories_ch1_3.
+Require Import Functors_ch1_4.
+Require Import Isomorphisms_ch1_5.
+Require Import ProductCategories_ch1_6_1.
+Require Import OppositeCategories_ch1_6_2.
+Require Import Enrichment_ch2_8.
+Require Import Subcategories_ch7_1.
+Require Import NaturalTransformations_ch7_4.
+Require Import NaturalIsomorphisms_ch7_5.
+Require Import MonoidalCategories_ch7_8.
+Require Import Coherence_ch7_8.
+Require Import Enrichment_ch2_8.
+Require Import RepresentableStructure_ch7_2.
+
+Class GeneralizedArrow (K:Enrichment) (C:MonoidalEnrichment) :=
+{ ga_functor_obj      : enr_v_mon K -> C
+; ga_functor          : Functor (enr_v_mon K) C ga_functor_obj
+; ga_functor_monoidal : MonoidalFunctor (enr_v_mon K) C ga_functor
+}.
+Coercion ga_functor_monoidal : GeneralizedArrow >-> MonoidalFunctor.
+
+Implicit Arguments GeneralizedArrow    [ ].
+Implicit Arguments ga_functor_obj      [ K C ].
+Implicit Arguments ga_functor          [ K C ].
+Implicit Arguments ga_functor_monoidal [ K C ].