removed redundant pragma + use newtype instead of data
More elegant (and more efficient?) method of creating the edge arrays. Also full disclose on limitations of array implementation