anchor.diff:       Errors) ->
       scan(Cs, Stack, [{':-', {Line, Col}} | Toks],
   	 {Line, Col + 2}, State, Errors);
  +%% :: for typed records
  +scan("::"++Cs, Stack, Toks, {Line, Col}, State, Errors) ->
  +    scan(Cs, Stack, [{'::',{Line, Col}}|Toks], {Line, Col+2}, State, Errors);
  +
   scan(":" = Cs, Stack, Toks, {Line, Col}, State,
        Errors) ->
       more(Cs, Stack, Toks, {Line, Col}, State, Errors,
  
positive.code: 
  scan([C | Cs], Stack, Toks, {Line, Col}, State, Errors)
      when C >= $\200,
  	 C =< $ ->                        % Control chars -skip
      scan(Cs, Stack, Toks, {Line, Col + 1}, State, Errors);
  scan([C | Cs], _Stack, Toks, {Line, Col}, State, Errors)
      when C >= $a,
  
negative.code: 	 {Line, Col + 1}, State);
  scan_dot([C | Cs], _Stack, Toks, {Line, Col}, State,
  	 Errors)
      when C >= $\200, C =< $\240 ->
      done(Cs, Errors, [{dot, {Line, Col}} | Toks],
  	 {Line, Col + 1}, State);
  scan_dot([], Stack, Toks, {Line, Col}, State, Errors) ->
  