Haskell lazy evaluation doesn't like my delays, remaking in Go