anchor.diff:              | TCSimple TCInterface -> true
               | _ -> false
   
  -        typeName +> optPre sepBeforeArg sepNone impCtor (genMemberDefn inter) +> sepEq 
  +        typeName +> opt sepNone impCtor (genMemberDefn inter) +> sepEq 
           +> indent +> sepNln +> genTypeDefKind tdk
           +> indent +> genMemberDefnList inter others +> unindent
           ++ "end" +> unindent
  
positive.code: let sortAndDedup by l =
      l |> Seq.distinctBy by |> Seq.sortBy by |> List.ofSeq
  
  let addSpaceBeforeParensFunCall functionOrMethod arg = 
      match functionOrMethod, arg with
      | _, ConstExpr(Const "()") -> false
      | SynExpr.LongIdent(_, LongIdentWithDots s, _, _), _ ->
          let parts = s.Split '.'
          not <| Char.IsUpper parts.[parts.Length - 1].[0]
      | _ -> true
  
  let addSpaceBeforeParensFunDef p =
      match p with
      | PatParen (PatConst SynConst.Unit) -> false
      | _ -> true
  
  let rec genParsedInput = function
  
negative.code:         match ps with
          | [] ->  aoc -- s +> tpsoc
          | [PatSeq(PatTuple, [p1; p2])] when s = "(::)" -> aoc +> genPat p1 -- " :: " +> genPat p2
          | [p] -> aoc -- s +> tpsoc +> ifElse (hasParenInPat p) (ifElse (addSpaceBeforeParensInFunDef s p) sepBeforeArg sepNone) sepSpace +> genPat p
          // This pattern is potentially long
          | ps -> atCurrentColumn (aoc -- s +> tpsoc +> sepSpace +> colAutoNlnSkip0 sepSpace ps genPat)
  
  