anchor.diff:      Q;
   dnf({Q,D}) ->
       dnf(mv_not(Q), D).
  +
  +clauses(Q) ->
  +    flatten(and_subs(Q)).
   
   %%----------------------------------------------------------------------------
   %% Internal functions
  
positive.code: 
  dnf(Q, 1) ->
      Q;
  dnf(Q, D) ->    
      dnf(mv_and(Q), D-1).
  
  mv_not({T,L,R}) ->
  
negative.code: %% API
  -export([from_str/2]).
  -export([dnf/1]).
  -export([clauses/1]).
  -export([depth/1]).
  
  %% Record declarations
  -record(and_q,  {l_sub :: q(), r_sub :: q()}).
  