The Readme defines:
// Data NonEmpty = | New a (NonEmpty a)
NonEmpty
|A :: ~ * ~> * => {(list A) :: |new}. // A list non-empty is list only with new constructor
The haskell datatype reads like a co-inductive definition: a stream of list elements. But the NonEmpty in your language should be data NonEmpty = New a (List a)
right?