from typing import Optional, Dict
from .json_conversion import as_json
from .Comorphism import Comorphism
from .Signature import Signature
from .HsWrapper import HsWrapper, HsHierarchyElement
from .haskell import comorphismNameOfGMorphism, comorphismDescriptionOfGMorphism, signatureOfGMorphism, comorphismOfGMorphism, \
domainOfGMorphism, codomainOfGMorphism, isGMorphismInclusion, gMorphismToTransportType
[docs]
class GMorphism:
def __init__(self, hs_g_morphism) -> None:
self._hs_g_morphism = hs_g_morphism
[docs]
def name(self) -> str:
return comorphismNameOfGMorphism(self._hs_g_morphism)
[docs]
def description(self) -> str:
return comorphismDescriptionOfGMorphism(self._hs_g_morphism)
[docs]
def signature(self) -> Signature:
return Signature(signatureOfGMorphism(self._hs_g_morphism))
[docs]
def comorphism(self) -> Comorphism:
return Comorphism(comorphismOfGMorphism(self._hs_g_morphism))
[docs]
def domain(self) -> dict:
return as_json(domainOfGMorphism(self._hs_g_morphism))
[docs]
def codomain(self) -> dict:
return as_json(codomainOfGMorphism(self._hs_g_morphism))
[docs]
def is_inclusion(self) -> bool:
return isGMorphismInclusion(self._hs_g_morphism)
[docs]
def as_json(self) -> dict:
return as_json(gMorphismToTransportType(self._hs_g_morphism))
[docs]
def symbol_map(self) -> Dict[object, object]:
pass