contract CrowdFund {
  mapping(address => uint) balances;
  bool locked;
  function lock() { locked = true; }
  function fund() payable {
    require(!locked);
    balances[msg.sender] += msg.value;
  }
  function withdraw() {
    require(!locked);
    uint amount = balances[msg.sender];
    delete balances[msg.sender];
    msg.sender.transfer(amount);
  }
  // More code ...





}
contract CrowdFund {
  mapping(address => uint) balances;
  bool locked;
  function lock() { locked = true; }
  function fund() payable {
    require(!locked);
    balances[msg.sender] += msg.value;
  }
  function withdraw() {
    require(!locked);
    uint amount = balances[msg.sender];
    delete balances[msg.sender];
    msg.sender.transfer(amount);
  }
  // More code ...
  function doSomethingComplicated() {
    // ...
    locked = false;
    // ...
  }
}
/// @title A 'bhòtadh le riochdachadh.
contract Baileat {
  // Tha seo a 'dearbhadh seòrsa iom-fhillte ùr a nì
  // bi air a chleachdadh airson atharrachaidhean nas fhaide air adhart.
  // Bidh e a 'riochdachadh aon neach-bhòtaidh.
  struct neachBhòtaidh {
    uint cuideam; // tha cuideam air a chruinneachadh le cuideam
    bool bhòtadh; // ma tha e fìor, bhòt an neach sin mu thràth
    address riochdaire; // neach air a thiomnadh gu
    uint bhòt;    // clàr-amais  den mholadh bhòtaichte
  }

  // Is e seo seòrsa airson aon mholadh.
  struct Moladh {
    bytes32 ainm;   // goirid ainm (suas ri 32 bytes)
    uint bhòtACunntadh; // àireamh de bhòtaichean cruinnichte
  }

  address public neachCathrach;

  // Tha seo a 'dearbhadh caochlaideach stàite a tha sin
  // a 'stòradh structar `neachBhòtaidh` airson gach seòladh
  // a dh'fhaodadh a bhith ann.
  mapping(address => neachBhòtaidh) public luchdBhòtaidh;

  // A h-uile ìre de structaran `Moladh`.
  Moladh[] public molaidhean;
  /// Cruthaich baileat ùr gus taghadh de `ainmeanMolaidh` a thaghadh.
  function Baileat(bytes32[] ainmeanMolaidh) {
    neachCathrach = msg.sender;
    luchdBhòtaidh[neachCathrach].cuideam = 1;

    // Airson gach aon de na h-ainmean molaidh a tha air an solarachadh,
    // cruthaich cuspair tagraidh ùr agus cuir ris
    // gu deireadh an t-sreath.
    for (uint i = 0; i < ainmeanMolaidh.length; i++) {
      // `Moladh({...})` a 'cruthachadh sealach
      // Proposal object agus `molaidhean.push (...)`
      // a 'cur crìoch air `molaidhean`.
      molaidhean.push(Moladh({
        ainm: ainmeanMolaidh[i],
        bhòtACunntadh: 0
      }));
    }
  }
  // ...
}