Module Genome.Compact


module Compact: sig  end


type logicalInput =
| BindIndicator of bindingDomain
| LogicalOuput of logicalIntegrationDomain


type logicalIntegrationDomain =
| ORDomain of logicalInput list
| ANDDomain of logicalInput list
| NOTDomain of logicalInput
| FALSE
| TRUE
| SIMPLEINPUT of logicalInput


type matcherDomain = Ligand.Matcher.matcher

type snippetDomain = Ligand.Matcher.snippet

type ligandBindingDomain = matcherDomain list

type structuralBindingDomain = snippetDomain list

type bindingDomain =
| StructuralBindingDomain of structuralBindingDomain
| LigandBindingDomain of ligandBindingDomain


type expressionDomainAtom =
| StaticString of string
| MatchedString of bindingDomain


type expressionDomain = expressionDomainAtom list

type remappingHeart = {
   trigger : logicalIntegrationDomain;
   rule : int;
}

type heartDomain =
| RemappingHeart of remappingHeart


type domain =
| BindingDomain of bindingDomain
| MatcherDomain of matcherDomain
| SnippetDomain of snippetDomain
| ExpressionDomain of expressionDomain
| Heart of heartDomain


type procunit = domain list

type compartment_genome = procunit list

type genome = compartment_genome list