anchor.diff:  Procedures are, in effect, abstractions that describe compound operations on numbers independent of the particular numbers.
   
   ****
  -The precise meaning of "being the same" is defined by the property of *"operational equivalence"* 
  +The precise meaning of "being the same" is defined by the property of *"operational equivalence"*
   ****
   
   .Parsers and combinators
  -* A parser is a function that takes a stream of input tokens, and converts them into a format (typically a data structure, 
  +* A parser is a function that takes a stream of input tokens, and converts them into a format (typically a data structure,
   such as a list or a tree) that is more easily consumed by your application.
   * A combinator is simply a higher order function which combines two functions into a new function.
   
  
positive.code: methods! In fact, func􀦞ons themselves have useful methods for composi􀦞on:
  
  == Closures
  Close over variables and functions. Everything used within the curly braces is essentially 
  kept alive whilst the closed over function is passed around and used by the application.
  
  === Futures and Promises
  
  Future[T] 
  
  Callbacks always return the values
  . onComplete.
  
negative.code: == Functional programming
  
  Functional programming is not only about composing functions and algebraic data structures — it makes concurrency composable
  
  Functional programming or (Declarative programming) in the long term is a vision for computer
  programming: the programmer should say only what he or she wants, and the computer
  should figure out how to calculate it.
  
  ==== Why Higher order functions are useful:
  
  . Common programming idioms can be encoded as functions within the language itself
  . Domain specific functions can be defined as collections of higher-order functions
  . Algebraic properties of higher-order functions can be used to reason about programs.
  
  Everything you wanted to know about http://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/[Category theory]
  
  ===== Origins (why FP now?)
  
  It seemed like denotational semantics wasn’t the best fit for a considerable number of important tasks
  that were essential for writing useful programs, and which could be easily tackled by operational semantics.
  The breakthrough came from category theory. Eugenio Moggi discovered that computational effect can be mapped to monads.
  This turned out to be an important observation that not only gave denotational semantics a new lease on life and
  made pure functional programs more usable, but also shed new light on traditional programming.
  footnote:[http://bartoszmilewski.com/2014/11/24/types-and-functions]
  
  === Category and composition
  