     )
   }
 
+  public var separatorInset: Lens<Object, UIEdgeInsets> {
+    return Lens(
+      view: { $0.separatorInset },
+      set: { $1.separatorInset = $0; return $1 }
+    )
+  }
+
   #if os(iOS)
+  public var separatorColor: Lens<Object, UIColor?> {
+    return Lens(
+      view: { $0.separatorColor },
+      set: { $1.separatorColor = $0; return $1 }
+    )
+  }
+
+  public var separatorEffect: Lens<Object, UIVisualEffect?> {
+    return Lens(
+      view: { $0.separatorEffect },
+      set: { $1.separatorEffect = $0; return $1 }
+    )
+  }
+
   public var separatorStyle: Lens<Object, UITableViewCellSeparatorStyle> {
     return Lens(
       view: { $0.separatorStyle },

extension UITableView: UITableViewProtocol {}

public extension LensHolder where Object: UITableViewProtocol {
  public var backgroundView: Lens<Object, UIView?> {
    return Lens(
      view: { $0.backgroundView },

import UIKit

public protocol UITableViewProtocol: UIViewProtocol {
  var allowsMultipleSelection: Bool { get set }
  var allowsMultipleSelectionDuringEditing: Bool { get set }
  var allowsSelection: Bool { get set }
  var allowsSelectionDuringEditing: Bool { get set }
  var backgroundView: UIView? { get set }
  var estimatedRowHeight: CGFloat { get set }
  var rowHeight: CGFloat { get set }
  var separatorInset: UIEdgeInsets { get set }
  #if os(iOS)
  var separatorColor: UIColor? { get set }
  var separatorEffect: UIVisualEffect? { get set }
  var separatorStyle: UITableViewCellSeparatorStyle { get set }
  #endif
}
