Converted spec based testing
converted referentially transparent io and folds and unfolds