import Data.Ratio
myEnumFromThen n m
= n `
seq` m `
seq`
(n : myEnumFromThen m
(m
+m
-n
))
myEnumFromThenTo e1 e2 e3
where
predicate | e2 >= e1 = (<= e3)
main = do
print $ (myEnumFromThenTo
1.3 1.6 2.8 :: [Ratio
Int])
aW1wb3J0IERhdGEuUmF0aW8KCm15RW51bUZyb21UaGVuICAgICA6OiAoRnJhY3Rpb25hbCBhKSA9PiBhIC0+IGEgLT4gW2FdCm15RW51bUZyb21UaGVuIG4gbSA9IG4gYHNlcWAgbSBgc2VxYCAobiA6IG15RW51bUZyb21UaGVuIG0gKG0rbS1uKSkKCm15RW51bUZyb21UaGVuVG8gICA6OiAoT3JkIGEsIEZyYWN0aW9uYWwgYSkgPT4gYSAtPiBhIC0+IGEgLT4gW2FdCm15RW51bUZyb21UaGVuVG8gZTEgZTIgZTMKICAgID0gdGFrZVdoaWxlIHByZWRpY2F0ZSAobXlFbnVtRnJvbVRoZW4gZTEgZTIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hlcmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZGljYXRlIHwgZTIgPj0gZTEgID0gKDw9IGUzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBvdGhlcndpc2UgPSAoPj0gZTMpCgptYWluID0gZG8KICAgIHByaW50ICQgKG15RW51bUZyb21UaGVuVG8gMS4zIDEuNiAyLjggOjogW0Zsb2F0XSkKICAgIHByaW50ICQgKG15RW51bUZyb21UaGVuVG8gMS4zIDEuNiAyLjggOjogW1JhdGlvIEludF0p
[1.3,1.6,1.9000001,2.2000003,2.5000005]
[13%10,8%5,19%10,11%5,5%2,14%5]