anchor.diff:    (:method ((exon exon)) (gene (transcript exon))))
   
   (defgeneric translation (seq-obj)
  -  (:documentation "Translation for an object that is either a transcript sequence or a protein sequence itself already (or a fragment of it, which would be referred to as a protein-feature).")
  +  (:documentation "Translation for an object that is either a
  +transcript sequence or a protein sequence itself already (or a
  +fragment of it, which would be referred to as a protein-feature).")
     (:method ((trans transcript)) (slot-value trans 'translation))
     (:method ((pep translation)) pep)
     (:method ((pf protein-feature)) (slot-value pf 'translation)))
  
positive.code:     (list name object-type)))
  
  (defun ensembl-type-char->type (char)
    "Transforms single letters abbreviating the EnsEMBL types into their CLCB full representation as GENE, TRANSCRIPT, EXON or TRANSLATION.
  Example:
  * (ensembl-type-char->type #\p)
  
  TRANSLATION"
    (cdr (assoc char *char-class-alist* :test #'char-equal)))
  
  (defun stable-id->ensembl-type (string)
    "Knows if a stable ID is a gene, transcript or peptide.
  Example:
  * (stable-id->ensembl-type \"ENSG00000141510\")
  
  GENE
  NIL"
    (declare (type string string))
  
negative.code: ;;; ------------------------------------
  ;; Note: We don't support writer methods yet
  (defun ensembl-version (ensembl-obj)
    "Genes may vary in their sequence, e.g. because of differently
  identified exons or some resequencing. This function retrieves the
  version that is currently being assigned to the gene.
  
  ###Example:
  (ensembl-version (sample_gene_tp53))
  
  4"
  