Sie sind hier: Startseite PIK Members Daniel Lincke Software outputs Origami.cpp

Origami.cpp

Plain Text icon Origami.cpp — Plain Text, 3 KB (3103 bytes)

Dateiinhalt

Concept Bifunctor<class s> {

    template<class fun1, class fun2, class s>
      requires
	Function<fun1>
	Function<fun2>
    s::Apply<fun1::Codomain, fun2::Codomain>  Bimap  (fun1, fun2, s::Apply<fun1::Domain1, fun2::Domain1>);

}



template<class s, class a>
struct Out {

	typedef   Fix<s, a>  Domain1;
	typedef   s::Apply<a, Fix<s, a>>  Codomain;

	Codomain operator() (Domain1 x1) {
	}

};



template<class s, class fun1>
  requires
	Bifunctor<s>
	Function<fun1>
struct Map_codomain1 {

	typedef   Fix<s, fun1::Domain1>  Domain1;
	typedef   Fix<s, fun1::Codomain>  Codomain;

	Codomain operator() (Domain1 x1) {
	}

};

template<class s, class fun1>
  requires
	Bifunctor<s>
	Function<fun1>
struct Map {

	typedef   fun1  Domain1;
	typedef   Map_codomain1  Codomain;

	Codomain operator() (Domain1 x1) {
	}

};



template<class s, class a, class fun1>
  requires
	Bifunctor<s>
	Function<fun1>
	SameType<fun1::Domain1, s::Apply<a, fun1::Codomain>>
	TypeConstructor2<s>
struct Fold_codomain1 {

	typedef   Fix<s, a>  Domain1;
	typedef   fun1::Codomain  Codomain;

	Codomain operator() (Domain1 x1) {
	}

};

template<class s, class a, class fun1>
  requires
	Bifunctor<s>
	Function<fun1>
	SameType<fun1::Domain1, s::Apply<a, fun1::Codomain>>
	TypeConstructor2<s>
struct Fold {

	typedef   fun1  Domain1;
	typedef   Fold_codomain1  Codomain;

	Codomain operator() (Domain1 x1) {
	}

};



template<class s, class a, class fun1>
  requires
	Bifunctor<s>
	Function<fun1>
	SameType<fun1::Codomain, s::Apply<a, fun1::Domain1>>
	TypeConstructor2<s>
struct Unfold_codomain1 {

	typedef   fun1::Domain1  Domain1;
	typedef   Fix<s, a>  Codomain;

	Codomain operator() (Domain1 x1) {
	}

};

template<class s, class a, class fun1>
  requires
	Bifunctor<s>
	Function<fun1>
	SameType<fun1::Codomain, s::Apply<a, fun1::Domain1>>
	TypeConstructor2<s>
struct Unfold {

	typedef   fun1  Domain1;
	typedef   Unfold_codomain1  Codomain;

	Codomain operator() (Domain1 x1) {
	}

};



template<class s, class fun1, class a, class fun2>
  requires
	Bifunctor<s>
	Function<fun1>
	SameType<fun1::Codomain, s::Apply<a, fun1::Domain1>>
	Function<fun2>
	SameType<fun2::Domain1, s::Apply<a, fun2::Codomain>>
	TypeConstructor2<s>
struct Hylo_codomain1_codomain1 {

	typedef   fun1::Domain1  Domain1;
	typedef   fun2::Codomain  Codomain;

	Codomain operator() (Domain1 x1) {
	}

};

template<class s, class fun1, class a, class fun2>
  requires
	Bifunctor<s>
	Function<fun1>
	SameType<fun1::Codomain, s::Apply<a, fun1::Domain1>>
	Function<fun2>
	SameType<fun2::Domain1, s::Apply<a, fun2::Codomain>>
	TypeConstructor2<s>
struct Hylo_codomain1 {

	typedef   fun2  Domain1;
	typedef   Hylo_codomain1_codomain1  Codomain;

	Codomain operator() (Domain1 x1) {
	}

};

template<class s, class fun1, class a, class fun2>
  requires
	Bifunctor<s>
	Function<fun1>
	SameType<fun1::Codomain, s::Apply<a, fun1::Domain1>>
	Function<fun2>
	SameType<fun2::Domain1, s::Apply<a, fun2::Codomain>>
	TypeConstructor2<s>
struct Hylo {

	typedef   fun1  Domain1;
	typedef   Hylo_codomain1  Codomain;

	Codomain operator() (Domain1 x1) {
	}

};


Artikelaktionen