         internal init(_ generator: FreeModule<A, R>, _ divisor: R) {
             self.generator = generator
             self.divisor = divisor
+        }
+        
+        internal convenience init(_ a: A, _ divisor: R) {
+            self.init(FreeModule(a), divisor)
         }
         
         public var isFree: Bool {

//
//           B        A
// 0 -> R^m ---> R^n ---> M -> 0
//
// See: https://en.wikipedia.org/wiki/Free_presentation
//      https://en.wikipedia.org/wiki/Structure_theorem_for_finitely_generated_modules_over_a_principal_ideal_domain#Invariant_factor_decomposition

        return "\(self),\t\(generators)"
    }
    
    public var asAbstract: AbstractSimpleModuleStructure<R> {
        let torsions = summands.filter{!$0.isFree}.map{$0.divisor}
        return AbstractSimpleModuleStructure(rank: rank, torsions: torsions)
    }
    
    public final class Summand: AlgebraicStructure {
        public let generator: FreeModule<A, R>
        public let divisor: R
