README.md in haskell-0.0.1 vs README.md in haskell-0.0.2
- old
+ new
@@ -1,9 +1,40 @@
-# Haskell
+# Ruby with Type.
-TODO: Write a gem description
+```rb
+require 'haskell'
+
+# Ruby 2.1.0+
+class MyClass
+ type Numeric >= Numeric >= Numeric, def sum(x, y)
+ x + y
+ end
+
+ type Numeric >= Numeric >= Numeric, def wrong_sum(x, y)
+ 'string'
+ end
+end
+
+MyClass.new.sum(1, 2)
+#=> 3
+
+MyClass.new.sum(1, 'string')
+#=> ArgumentError: Wrong type of argument, type of "str" should be Numeric
+
+MyClass.new.wrong_sum(1, 2)
+#=> TypeError: Expected wrong_sum to return Numeric but got "str" instead
+
+# Ruby 1.8.0+
+class MyClass
+ def sum(x, y)
+ x + y
+ end
+ type Numeric >= Numeric >= Numeric, :sum
+end
+```
+
## Installation
Add this line to your application's Gemfile:
```ruby
@@ -16,16 +47,32 @@
Or install it yourself as:
$ gem install haskell
-## Usage
+## More example
+```ruby
+class People
+ type People >= Any, def marry(people)
+ # Your Ruby code as usual
+ end
+end
-TODO: Write usage instructions here
+People.new.marry(People.new)
+#=> no error
+People.new.marry('non people')
+#=> ArgumentError: Wrong type of argument, type of "non people" should be People
+
+```
+
## Contributing
1. Fork it ( https://github.com/[my-github-username]/haskell/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request
+
+
+## Credits
+[@chancancode](https://github.com/chancancode) first brought this to my attention.